Qt Creator,项目工具包中的编译器被忽略
Qt Creator, Compiler in kit for project is being ignored
我正在运行macOS High Sierra(10.13.2)和Qt 5.10.0。我想在我的应用程序中使用 OpenMP。
我已将以下标志添加到我的 .pro 文件中
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
LIBS += -fopenmp
macOS 上的默认编译器不包含 OpenMP。我通过支持OpenMP的自制软件安装了gcc
。
在Qt Creator的"构建和运行->编译器"选项卡下,我添加了自制g++
和gcc
编译器(/usr/local/Cellar/gcc/7.2.0/bin/{gcc-7,g++-7}
)。然后,我选择了我正在使用的工具包,并将编译器更改为我在编译器选项卡下添加的自制安装编译器。
如果我在设置此工具包并重建项目后检查Qt Creator生成的Makefile
,我发现CC
和CXX
没有使用我指定的编译器。 以下是它们在Makefile
中的值:
CC = /Library/Developer/CommandLineTools/usr/bin/clang
CXX = /Library/Developer/CommandLineTools/usr/bin/clang++
这些应该是/usr/local/Cellar/gcc/7.2.0/bin/g++-7
和/usr/local/Cellar/gcc/7.2.0/bin/gcc-7
.
我现在得到的编译器输出是:
18:14:48: 开始:"/usr/bin/make"
/usr/local/Cellar/qt/5.10.0/bin/qmake -o Makefile ../Practice/Practice.pro -spec macx-g++ CONFIG+=debug CONFIG+=x86_64 CONFIG+=qml_debug
/Library/Developer/CommandLineTools/usr/bin/g++ -c -pipe -fopenmp -g -std=gnu++11 -arch x86_64 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.10 -Wall -W -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../Practice -I. -I/usr/local/Cellar/qt/5.10.0/lib/QtQuick.framework/Headers -I/usr/local/Cellar/qt/5.10.0/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.10.0/lib/QtQml.framework/Headers -I/usr/local/Cellar/qt/5.10.0/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.10.0/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AGL.framework/Headers -I/usr/local/Cellar/qt/5.10.0/mkspecs/macx-g++ -F/usr/local/Cellar/qt/5.10.0/lib -o main.o ../实践/主要.cpp
CLANG:错误:不支持的选项"-fopenmp">
make: *** [main.o] 错误 1
18:14:49:进程"/usr/bin/make"以代码 2 退出。
构建/部署项目时出错 实践(工具包:桌面) 执行步骤"制作"时
为什么Qt Creator生成的Makefile
不使用我在使用的工具包中指定的编译器?
因为您使用的 mkspecmacx-g++
将覆盖 CC 和 CXX 设置。作为临时解决方法,请尝试直接在 pro 文件中设置它们:
QMAKE_CC = /usr/local/Cellar/gcc/7.2.0/bin/gcc-7
QMAKE_CXX = /usr/local/Cellar/gcc/7.2.0/bin/g++-7
您可能希望为您的套件编辑 mkspec(或制作一个新 mkspec)并在那里设置这些变量。
要查找 mkspec 文件 (qmake.conf):
INSTALLDIR=`qmake -query QT_INSTALL_CONFIGURATION`
MKSPECNAME=`qmake -query QMAKE_SPEC`
cd $INSTALLDIR/mkspecs/$MKSPECNAME
至于为什么你必须设置两次编译器:Qt Creator是一个通用的c ++ IDE,因此能够管理非Qt项目,这些项目不使用qmake
但无论如何都需要编译器。
- C/C++编译器通常会删除重复的库吗
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- Win32编译器选项和内存分配
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++,我收到一个无法理解的编译器错误
- Qt Creator在linux mint 64位中找不到CMAKE_CXX_COMPILER编译器
- 将 QT Creator 5.8 与 MSVC 2015 编译器配合使用
- Qt Creator,项目工具包中的编译器被忽略
- 如何将QT5和QT Creator 2.6.1与VS 2012中的编译器一起使用
- Qt 5测试版2,Qt Creator 2.6,MSVC错误:Qt Creaator需要一个编译器来构建.在工具包选项中
- 如何在Qt Creator中配置编译器
- Qt Creator 中缺少编译器
- 具体而言,如何在Qt Creator中添加编译器
- 在Qt Creator中禁用编译器警告项目范围(当使用MSVC时)
- Debian上的Qt Creator编译器问题
- 如何使用Clang作为编译器与Qt Creator在Windows上
- Visual c++编译器2012年11月CTP与Qt Creator for c++ 11
- 如何在windows上使用Qt Creator和Visual c++编译器
- Qt Creator找不到cl.exe(VS2012)编译器