44

我已经玩 Qt 几个小时了。我发现 qmake 在 Mac OS X 上生成 Xcode 项目文件,而不是好的 ol' makefile。我不想每次构建“Hello, world”时都启动 Xcode。

我如何让 qmake 生成常规的 makefile,或者,如果这是在 Mac 上无法完成的事情,我如何.xcodeproj从命令行编译文件?

我试过了xcodebuild -project myProject -alltargets。我得到很多输出,然后是Abort trap.

4

4 回答 4

60
$ man xcodebuild

所以一个典型的命令可能是这样的:

$ xcodebuild -project myProject.xcodeproj -alltargets
于 2008-12-18T15:05:55.787 回答
21

Trolltech 为 OS X 提供的开源 Qt 二进制安装程序默认在您运行 qmake 时创建 .xcodeproj 文件。我不使用 XCode 进行编辑,因此打开它来编译项目很痛苦。

要从 Terminal.app 编译您的项目,只需将 QMAKESPEC 的环境变量设置为 macx-g++

如果您只想从终端编译某个项目,请进入该目录并运行

qmake -spec macx-g++

当你运行 qmake 时,这将创建一个 Makefile,你可以通过运行 make 来使用它。

于 2008-12-18T17:43:39.027 回答
2

试试下面的方法。它必须工作。

xcodebuild -project myProject.xcodeproj -alltargets

我在大部分项目中都使用过这种方法。

于 2012-01-17T06:18:50.290 回答
0

查看回溯的这一部分:

# 2008-12-18 20:40:52.333 xcodebuild[1070:613] [MT] ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-921/pbxcore/FileTypes/PBXCFBundleWrapperFileType.m:174 # 详细信息:路径应该是非空字符串,但它是一个空字符串 # Object: # Method: -subpathForWrapperPart:ofPath:withExtraFileProperties: # Thread: {name = (null), num = 1}

这意味着某些东西,可能是您的配置变量之一,在需要引用文件时是空白的。我想知道的是,如果您的项目中有一个额外的目标不起作用,那么使用 -alltargets 构建是导致您的问题的原因。

我刚才在我的一个项目上测试了没有任何参数的 xcodebuild - 它对我的项目进行了默认构建,没有错误。如果你在没有参数的情况下尝试它会发生什么?

于 2008-12-18T17:42:29.107 回答