我已经花了几个小时在Qt上玩耍了。我发现qmake在Mac OS X上生成的是Xcode项目文件,而不是好老的makefiles。我不想每次想要构建“Hello, world”时都启动Xcode。
如何让qmake生成常规的makefiles呢?如果这在Mac上无法做到,那么如何从命令行编译.xcodeproj
文件呢?
我尝试过xcodebuild -project myProject -alltargets
。我得到了很多输出,然后是Abort trap
。
我已经花了几个小时在Qt上玩耍了。我发现qmake在Mac OS X上生成的是Xcode项目文件,而不是好老的makefiles。我不想每次想要构建“Hello, world”时都启动Xcode。
如何让qmake生成常规的makefiles呢?如果这在Mac上无法做到,那么如何从命令行编译.xcodeproj
文件呢?
我尝试过xcodebuild -project myProject -alltargets
。我得到了很多输出,然后是Abort trap
。
$ man xcodebuild
因此,一个典型的命令可能如下:
$ xcodebuild -project myProject.xcodeproj -alltargets
Trolltech 的开源 Qt 二进制安装程序在 OS X 上默认使用 .xcodeproj 文件,当你运行 qmake 时会创建它。但我不使用 XCode 进行编辑,所以打开它来编译项目很麻烦。
要从 Terminal.app 编译您的项目,只需将环境变量 QMAKESPEC 设置为 macx-g++。
如果您只想从终端编译特定项目,请进入该目录并运行
qmake -spec macx-g++
当你运行 qmake 时,它会创建一个 Makefile 文件,你可以通过运行 make 命令来使用它。export QMAKESPEC=macx-g++
(如果您至少使用sh) - Alex Jasminxcodebuild -project myProject.xcodeproj -alltargets
我在大多数项目中都使用了这种方法。
看一下你的回溯中的这部分:
# 2008-12-18 20:40:52.333 xcodebuild[1070:613] [MT] ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-921/pbxcore/FileTypes/PBXCFBundleWrapperFileType.m:174 # Details: path should be a non-empty string, but it's an empty string # Object: # Method: -subpathForWrapperPart:ofPath:withExtraFileProperties: # Thread: {name = (null), num = 1}
这意味着某些东西,可能是你的配置变量之一,在需要引用文件时为空。我想知道的是,也许你的项目中有一个额外的目标无法正常工作,因此使用-alltargets构建是导致问题的原因。
我刚刚在我的一个项目上测试了没有任何参数的xcodebuild——它默认构建了我的项目而没有错误。如果你尝试不带参数运行它会发生什么?