【发布时间】:2015-10-04 18:22:11
【问题描述】:
不管我的 .pro 文件内容如何,clang++ 和 g++ 都会继续使用:
linux-clang++
{
message("Using clang++")
QMAKE_CXXFLAGS += -Weverything
}
linux-g++
{
message("Using g++")
QMAKE_CXXFLAGS += -Wall -Wextra
}
我还尝试根据 qmake 文档检查 QMAKE_CXX 到 contains(QMAKE_CXX, clang++) 和 equals(QMAKE_CXX = clang++),但无论如何我都会得到相同的输出:
Project MESSAGE: Using clang++
Project MESSAGE: Using g++
message($$QMAKESPEC) 输出Project MESSAGE: /usr/lib/qt/mkspecs/linux-g++,构建设置也显示-spec linux-g++,但它似乎一直在启用clang。
反之亦然:将我在 QtCreator 中的默认编译器更改为 clang,并设置 QMAKE_CXX = clang++ 导致 g++ 仍在使用。
只能假设我在某处遗漏了什么?
【问题讨论】:
-
qmake 为您生成了多少个 Makefile?它们里面有什么?
-
根据需要只生成了1个makefile,一切正常(-spec linux-g++等)。这可以在构建之前检测到;编辑 .pro 文件并保存,qtcreator 自动解析并输出两条消息。即使添加
equals(QMAKE_CXX, "blah"),它仍然会进入它的作用域。
标签: c++ linux qt-creator qmake