Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Xcode 4外部构建项目和调试_C++_Xcode4 - Fatal编程技术网

C++ Xcode 4外部构建项目和调试

C++ Xcode 4外部构建项目和调试,c++,xcode4,C++,Xcode4,我已经建立了一个基于makefile的项目,可以在多个平台上构建代码。在我的Mac上,我想使用Xcode进行调试。我已经将Xcode设置为一个外部构建项目,我可以在Xcode中运行应用程序。输出显示在Xcode中,如果应用程序崩溃,它将进入调试器,但运行调试器时无法找到源文件,因此我只看到程序集输出。如何告诉Xcode在哪里找到源代码 我也不能设置断点,但我认为这是同样的问题。在“项目导航器”(运行按钮下方的文件夹图标)中,右键单击并选择“将文件添加到项目”。浏览到通常运行外部构建的顶级文件夹,

我已经建立了一个基于makefile的项目,可以在多个平台上构建代码。在我的Mac上,我想使用Xcode进行调试。我已经将Xcode设置为一个外部构建项目,我可以在Xcode中运行应用程序。输出显示在Xcode中,如果应用程序崩溃,它将进入调试器,但运行调试器时无法找到源文件,因此我只看到程序集输出。如何告诉Xcode在哪里找到源代码


我也不能设置断点,但我认为这是同样的问题。

在“项目导航器”(运行按钮下方的文件夹图标)中,右键单击并选择“将文件添加到项目”。浏览到通常运行外部构建的顶级文件夹,然后单击“添加”。

通过为可执行文件设置自定义工作目录,我能够解决在断点处不停止的问题。 在此更改之前,我能够使用Xcode 4中的外部scons系统成功构建。从XCode调用时,我的代码将运行,但断点将被忽略

然后在XCode中, 转到产品->编辑方案。。。 选中“使用自定义工作目录” 我将其设置为与可执行文件相同的目录

然后断点开始工作

  • 确保makefile中的编译器选项中包含-g
  • 在方案中设置自定义工作目录,如果尚未设置,则设置可执行文件
  • 确保项目没有引入未使用-g编译的dylib。如果项目同时构建dylibs和主目标,那么您可能需要一个构建步骤来运行makeinstall
  • 确保没有调用“strip”。xcode设置了一些环境变量,允许您在xcode外部使用时保留一个工作的makefile

  • 刚刚遇到了这个问题,这个问题就解决了(Xcode 4.6)(得到了源代码调试和工作断点)

    我已经添加了所有源文件。起初我是作为文件夹引用(蓝色文件夹)这样做的,但我也尝试添加组和文件(黄色文件夹),两者都不起作用。在普通项目上,您还需要选中“目标成员资格”框,但这在外部生成项目中被禁用。我找不到解决方案,因此我放弃了,并为库创建了一个普通Xcode项目。这确实意味着我需要维护makefile、Xcode,可能还有visualstudio构建,但至少我已经找回了我的调试器。谢谢。我试过这个,效果很好。起初没有,但那是因为我正在执行一个非调试构建,一旦我更改为调试可执行文件,它就开始工作了。我真的很高兴我现在能做到这一点,因为我不得不维护两个版本,一个在Xcode中,另一个在Xcode之外,这不太理想。