Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用自定义编译器和自定义标志构建Qt?_C++_Qt - Fatal编程技术网

C++ 如何使用自定义编译器和自定义标志构建Qt?

C++ 如何使用自定义编译器和自定义标志构建Qt?,c++,qt,C++,Qt,我正在构建Qt5.4,我想使用与系统版本不同的自定义构建的GCC版本。我不想用我的系统替换系统GCC。但是,我不知道如何更改Qt构建系统使用的编译器绝对路径,以及如何添加自定义标志。通常,开源库使用CXX和cxflags变量来改变编译器绝对路径及其选项,但Qt构建系统似乎忽略了这些变量 Qt5.4构建系统是否有任何类似于GNU项目通用的选项CXX和cxflags,以及LD和LDFLAGS?正如@BartoszKP所建议的,需要定制构建平台。更容易(但不那么优雅和“教育性”)的想法是修改现有的平台

我正在构建Qt5.4,我想使用与系统版本不同的自定义构建的
GCC
版本。我不想用我的系统替换系统
GCC
。但是,我不知道如何更改Qt构建系统使用的编译器绝对路径,以及如何添加自定义标志。通常,开源库使用
CXX
cxflags
变量来改变编译器绝对路径及其选项,但Qt构建系统似乎忽略了这些变量


Qt5.4构建系统是否有任何类似于GNU项目通用的选项
CXX
cxflags
,以及
LD
LDFLAGS

正如@BartoszKP所建议的,需要定制构建平台。更容易(但不那么优雅和“教育性”)的想法是修改现有的平台。 我使用
linux-g++
平台作为基础。这个平台
qmake.conf
相对于源代码目录的文件路径是
qtbase/mkspecs/linux-g++/qmake.conf
。我在该文件的最底部添加了以下行:

QMAKE_CXX               = /path/to/custom/g++
QMAKE_LINK              = /path/to/custom/g++
QMAKE_LFLAGS            += -custom-link-flags-here
QMAKE_CC                = /path/to/custom/gcc
QMAKE_LINK_C            = /path/to/custom/gcc

现在,Qt build platform使用我的自定义编译器而不是现有的system one,它添加了我的自定义链接器标志。

最简单的方法是使用:

make CC=/path/to/custom/gcc CXX= /path/to/custom/g++ LINK=/path/to/custom/g++ LFLAGS= -custom-link-flags-here

现在,Qt将使用您的自定义编译器而不是现有的系统编译器。

您使用的是什么操作系统?(Linux?)您可能需要创建一个自定义qmake.conf文件。请参阅或。@Cameron是的,我的操作系统是Linux(CentOS 6)。@BartoszKP好主意,创建自己的平台似乎需要它。我使用<代码> LIUX-G+++ < /C>平台作为基础,只修改了与路径相关的系统变量来编译QT。@ VITALIY,如果它工作,考虑发布一个自我回答:“我不太清楚它能做到这一点。”祝你好运谢谢你的提示。我不仅要这样做(事实上,对我来说,它似乎并不适用于对qmake.conf的更改)。实际上,我必须对mkspecs/common/g++-base.conf进行更改;这确保了qmake可执行文件和构建都使用了所需的编译器。