我正在尝试编译一个现有的 c++ 项目,该项目最初是在 linux 上使用 gcc 开发的。唯一的外部图书馆是 GSL(GNU 科学图书馆)。我已经创建了一个外部构建工具项目来使用 xcode 的调试器,但我目前有两个问题。
1) 当我尝试在 xcode 中构建时,它失败并显示错误 'gsl/gsl_matrix.h' file not found
。我已将 /usr/local/include
添加到 HEADER_SEARCH_PATHS
并确认该位置有一个 gsl
文件夹,其中包含所有头文件(随 brew 安装)。但是,如果我在 CL 中键入 make
,那么项目编译没有任何错误,所以我知道我的 GSL、makefile 或从 gcc 到 clang 的切换没有问题。
我看过Xcode 6.3.2 unable to build or run projects ,并在基础上更新了我的 xcode CL 工具,但我已经是最新的 (2339)。
2) 虽然从 xcode 内部构建会很好,但如果我每次都必须从 CL 构建,那还不是世界末日。一旦我编译了所有东西,我就可以从 xcode 运行它,但是,我的断点都没有命中。我已经在我的调试方案中设置了可执行文件和自定义工作目录(如 Run C program in Xcode 4 using makefile 所示)。我也看过 Why aren't my breakpoints working?并没有找到任何有效的方法。
我认为这可能是运算符(operator)错误,因为我正在使用 Product->Run 运行目标,但我没有看到任何像 intellij 这样专门启动 Debug模式的选项。我还可以暂停代码并出现调试器 View ,但当我暂停时它只显示汇编指令。
最佳答案
好吧,我已经解决了我的两个问题。
1) 在外部构建工具配置中,我必须取消选中“在环境中传递build设置”。
2) 我在这里有点白痴...我曾尝试将 -g 添加到我的 $(FLAGS) 变量中,但意识到这仅适用于我的可执行文件。我修改了 makefile 以使用 -g 编译每个源文件,然后在源代码上停止断点(与反汇编相反)。
关于c++ - xcode 6.3.2 外部构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30903437/