Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Xcode 在MAC OSX上使用CMake生成.bundle文件_Xcode_Macos_Cmake - Fatal编程技术网

Xcode 在MAC OSX上使用CMake生成.bundle文件

Xcode 在MAC OSX上使用CMake生成.bundle文件,xcode,macos,cmake,Xcode,Macos,Cmake,我想使用CMake在Mac OSX 10.6.8上的.bundle文件中生成一个可执行文件。我的CMakeLists.txt文件如下所示: cmake_minimum_required(VERSION 2.8) PROJECT(TESTProject) SET(MACOSX_BUNDLE_BUNDLE_NAME TEST) ADD_EXECUTABLE(TEST MACOSX_BUNDLE main.cpp) SET_TARGET_PROPERTIES(TEST PROPERTIES MACOS

我想使用
CMake
Mac OSX 10.6.8
上的
.bundle
文件中生成一个可执行文件。我的CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 2.8)
PROJECT(TESTProject)
SET(MACOSX_BUNDLE_BUNDLE_NAME TEST)
ADD_EXECUTABLE(TEST MACOSX_BUNDLE main.cpp)
SET_TARGET_PROPERTIES(TEST PROPERTIES MACOSX_BUNDLE TRUE)
然后我给CMake打电话:

CMake -G"Xcode" .
然而,当我用
Xcode 3.2.1
编译这个程序时,我经常得到一个
TEST.app
文件,而不是
TEST.bundle
文件


我在这里做错了什么?

使用BUNDLE\u EXTENSION target属性获取不同于默认扩展的扩展

另外,我认为.app只是可执行目标的默认值。对于库或模块目标,.bundle应为默认值


您是否尝试过库目标?

对于遇到此问题并试图构建库的任何人。捆绑包,这在CMake 3.0上对我很有效:

add_library(Foo MODULE ${SOURCES} ${HEADERS})
set_target_properties(Foo PROPERTIES BUNDLE TRUE)

关键是使用
模块
而不是
共享
。出于某种原因,CMake会忽略
BUNDLE
属性,否则。

中的信息表明
MACOSX\u BUNDLE
表示目标用于生成捆绑应用程序(例如,Test.app而不是命令行工具测试),而不是
BUNDLE
捆绑。是的,确实如此。我在考虑更多。在MacOSX上捆绑插件。是的,我终于成功了。它是一组不同的命令,具有BUNDLE_扩展和add_库(而不是add_可执行文件)。谢谢你的帮助。@Korchkidu你能告诉我确切的命令和你写命令的顺序吗。一个很好的例子。