C++ Qt创建者,忽略项目工具包中的编译器

C++ Qt创建者,忽略项目工具包中的编译器,c++,qt,makefile,openmp,C++,Qt,Makefile,Openmp,我正在运行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的Build&Run->Compilers选项卡下,我添加了自制的g++和gcc编译器(/

我正在运行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的Build&Run->Compilers选项卡下,我添加了自制的
g++
gcc
编译器(
/usr/local/ceral/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/ceral/gcc/7.2.0/bin/g++-7
/usr/local/ceral/gcc/7.2.0/bin/gcc-7

我现在得到的编译器输出是:

18:14:48:开始:“/usr/bin/make”

/usr/local/ceral/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\u不推荐的警告-DQT\u QML调试-DQT\u快速库-DQT\u图形库-DQT\u图形库-DQT\u网络库-DQT\u核心库-I。-I/usr/local/cillar/qt/5.10.0/lib/QtQuick.framework/Headers-I/usr/local/cillar/qt/5.10.0/lib/QtGui.framework/Headers-I/usr/local/cillar/qt/qt/qt/5.10.0/lib/QtNetwork.framework/Headers-I/usr/local/cillar/qt/qt/qt/qt/5.10.0/lib/core.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/cillar/qt/5.10.0/mkspecs/macx-g++-F/usr/local/cillar/qt/qt/5.10.0/lib-o main.o../Practice/main.cpp

叮当声:错误:不支持的选项'-fopenmp'

make:**[main.o]错误1

18:14:49:进程“/usr/bin/make”已退出,代码为2

生成/部署项目实践时出错(工具包:桌面) 执行步骤“Make”时


为什么Qt Creator生成的
Makefile
没有使用我在使用的工具包中指定的编译器?

因为您使用的mkspec
macx-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),请执行以下操作:


<>你为什么必须设置编译器两次:Qt Creator是一个通用的C++ IDE,因此能够管理非QT项目,它不使用<代码> Quest但无论如何都需要编译器。我有一个类似的问题。是的,它将编译不包括OpenMP,但它仍然使用错误的编译器。谢谢。在我添加
QMAKE_LINK=/usr/local/ceral/gcc/7.2.0/bin/g++-7
INSTALLDIR=`qmake -query QT_INSTALL_CONFIGURATION`
MKSPECNAME=`qmake -query QMAKE_SPEC`
cd $INSTALLDIR/mkspecs/$MKSPECNAME