我目前能够使用cmake设置和编译一个Visual Studio项目,但是我根本无法断点。最初,当我尝试使用调试器运行时,VS警告我找不到调试符号。为了解决这个问题,我只是转到项目属性,然后选择Linker-> Debugging并将“ Generate Debug Info”设置为yes。现在它会生成必要的pdb文件,但是,如果我在源代码中放置一个断点,它将被挖空并告诉我在文档中未加载任何符号。
所以我的问题是为什么它与pdb文件的源不匹配,我该怎么做才能更正此问题?
谢谢。
这是一个带有简单示例的git repo:https://github.com/Samurai336/CmakeSimple
最佳答案
好的,我想出了问题所在,这要归功于用户Fraser的注释,他问我是否将调试信息格式设置为“ / Zi或/ ZI”。好吧,这是Zi决定的,所以让我把科学重新带到计算机科学领域,我给了/ ZI一枪。编译器对我大喊:“'/ ZI'和'/ 02'不兼容。”因此,今天我调查了/ 02标志是什么,并意识到它是最大速度优化标志,并且有一种预感,这就是为什么它出现调试问题的原因。当然,当我将标志更改为“ / Od”(禁用)时,所有中断点都相应地指向了。
但是,这给我提出了一个主要问题:如何从cmake为VS编译器设置这些标志?
如果我还没有回答,我可能会将其作为一个单独的问题提出。
感谢大家的帮助。
关于c++ - cmake生成的VS项目无法断点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16969788/