【发布时间】:2011-12-11 21:03:45
【问题描述】:
我正在尝试使用 CMake 生成的 Xcode 项目。构建时一切看起来都很好,除了 Xcode 找不到构建的二进制文件。下面是我成功构建产品后的截图。我可以在项目源目录中看到它们。但是,请注意 Xcode 显示红色“HelloWorld”,这意味着它找不到产品。
配置:CMake 2.8.6 和 Lion 10.7.2 上的 Xcode 4.2
这是 CMakeLists.txt
project(HelloWorld)
add_executable(${PROJECT_NAME} HelloWorld.cpp)
这是HelloWorld.cpp的源代码
#include <iostream>
int main(){
std::cout << "HelloWorld!" << std::endl;
return 0;
}
我尝试直接从Xcode创建一个原始项目,编译后,产品显示黑色而不是红色字体,这意味着Xcode找到了产品。所以我确信这与 CMake Generated Xcode 项目有关。
有人知道吗?如何解决这个问题?
【问题讨论】:
-
您的目标仅仅是阻止 Xcode 将产品名称呈现为红色,还是还有其他问题?例如,当您在调试器中执行二进制文件时,Xcode 是否找不到二进制文件?
-
这是我遇到的问题。如果 Xcode 项目是由 CMake 生成的,则 Xcode 无法构建产品。
-
回答你的第二个问题,是的。二进制文件已构建,我可以在源目录中看到它。但 Xcode 无法执行。
-
我自己使用您的 CMakeLists.txt 和源代码进行了尝试。产品名称仍然是顽固的红色,但我能够启动程序并在调试器中看到输出就好了。我什至可以设置一个断点并且它起作用了。我能想到的唯一一件事是,当我使用 CMake GUI 程序生成 Xcode 项目时,默认的活动方案是 ZERO_CHECK,它没有 HelloWorld 目标作为依赖项,因此当它是活动方案时,什么都不会构建.我只是将活动方案更改为 HelloWorld,然后它就起作用了。
-
感谢 sjs。对我来说,构建设置为 ALL_BUILD,在我切换到 HelloWorld 后,Xcode 可以使用断点执行它。看起来唯一剩下的问题是即使生成二进制文件也会出现顽固的红色