在 Mac OS X 下更改 Qt 的编译标志?

3

我在 Mac 上安装了 Qt,并在 .Pro 文件中添加后,正在编译我的 Qt 项目

CONFIG(release, debug|release):QMAKE_CXXFLAGS += -O3 -fomit-frame-pointer

优化速度。

然而,我总是看到运行g++的命令中包含-Os,这会优化大小。我想要移除它。

我尝试了几种方法,比如

CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE -= -Os
CONFIG(release, debug|release):QMAKE_CXXFLAGS -= -Os

并且

CONFIG(release, debug|release):QMAKE_CXXFLAGS = -O3 -fomit-frame-pointer
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE = -O3 -fomit-frame-pointer
(no +)

但是仍然出现了 -Os。

我该如何更改呢?

我在 /usr/local/QT4.5/mkspecs 下找到了 qmake.conf 文件。它包括一个名为 mac-g++.conf 的文件,但我无法更改它,而 chmod 命令也无效:chmod: mac-g++.conf: 操作不允许。

有什么想法吗?

3个回答

2
我通过编辑我的项目的.pro文件成功地解决了这个问题:
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -O3

我通过监控编译输出验证了它的生效。


0

在编辑了.pro文件后,您应该在项目目录中运行qmake命令。


谢谢Pavel!实际上,当我更改pro文件时,QT Creator会自动运行QMake。我需要手动运行它吗(我看不出区别)?这样的更改对你有用吗?我可以手动更改Makefile,但每次都需要手动步骤... 再次感谢,Lior - Lior
@Lior:我只是在猜测什么能帮助你,实际上我没有Mac也不使用Qt Creator。尝试手动运行qmake,如果它生成了正确标志的makefile,也许你就不需要编辑.pro文件了。相反,你应该尝试在Qt Creator的“项目选项”窗口中编辑CFLAGS。 - P Shved

0

chmod命令失败,因为该目录由root所有(即非您的用户)。

您可以通过以下方式处理:

sudo chmod ....

我想知道你是否知道-O3是否真正优化了速度。如Pavel所指出的那样,您可以编辑Makefile并手动构建和测试。我猜-O3不会有太大的区别,甚至可能会稍微差一点。

至于在Qt Creator中设置CXXFLAGS,最好的办法是覆盖对Make的调用。在“项目”部分中,转到“构建步骤”,然后将CXXFLAGS ='-O3 -fomit-frame-pointer'添加到“Make参数”部分。

希望这些能帮到您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接