2015-02-10 101 views
8

我正在构建Qt 5.4,我想用我自定义的GCC版本,这个版本与系统版本不同。我不想用我的系统替换系统GCC。但是,我不明白我该如何修改Qt编译系统使用的编译器绝对路径,以及如何添加自定义标志。通常开源库使用CXXCXXFLAGS变量来改变编译器的绝对路径及其选项,但它看起来像Qt构建系统忽略这些变量。如何用自定义编译器和自定义标志来构建Qt?

Qt 5.4构建系统是否有类似于GNU项目CXXCXXFLAGS以及LDLDFLAGS的常见选项?

+0

你在什么操作系统上? (Linux?) – Cameron 2015-02-10 15:15:57

+3

您可能需要创建一个定制的qmake.conf文件。见[这里](https://qt-project.org/search/tag/qmake.conf)或[这里](https://qt-project.org/search/tag/qmake.conf)。 – BartoszKP 2015-02-10 15:17:59

+0

@Cameron是的,我的操作系统是Linux(CentOS 6)。 – Vitaliy 2015-02-10 15:26:38

回答

3

作为@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构建平台使用我的自定义编译器,而不是现有的系统之一,它增加了我的自定义链接标志。

+0

感谢您的提示。我不仅要这样做(实际上对于我来说,它似乎没有实际上与qmake.conf的变化一起工作)。我实际上必须对mkspecs/common/g ++ - base.conf进行更改;这确保了qmake可执行文件和构建都使用了所需的编译器。 – 2016-01-06 19:24:20

0

最简单的方法是使用:

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

现在的Qt会使用,而不是现有的系统中的一个自定义的编译器。