简体   繁体   English

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

[英]How to build Qt with custom compiler and custom flags?

I am building Qt 5.4 and I want to use my custom built GCC version which is different from the system one. 我正在构建Qt 5.4,我想使用我的自定义GCC版本,它与系统版本不同。 I don't want to replace system GCC with my one. 我不想用我的系统更换系统GCC However, I don't see how can I alter the compiler absolute path that the Qt build system uses, as well as how to add custom flags. 但是,我不知道如何更改Qt构建系统使用的编译器绝对路径,以及如何添加自定义标志。 Usually open source libraries use CXX and CXXFLAGS variables to alter compiler absolute path and its options, but it looks like Qt build system ignores these variables. 通常,开源库使用CXXCXXFLAGS变量来改变编译器的绝对路径及其选项,但看起来Qt构建系统忽略了这些变量。

Does Qt 5.4 build system have any options similar to common for GNU projects CXX and CXXFLAGS , as well as LD and LDFLAGS ? Qt 5.4构建系统是否有类似于GNU项目CXXCXXFLAGS以及LDLDFLAGS常见选项?

As @BartoszKP adviced, it is required to make custom build platform. 正如@BartoszKP所建议的,它需要制作自定义构建平台。 Easier (but less elegant and less "educational") idea is to modify existing platform. 更容易(但不那么优雅,不那么“教育”)的想法是修改现有平台。 I used linux-g++ platform as a base. 我使用linux-g++平台作为基础。 This platform qmake.conf file path relative to source code directory is qtbase/mkspecs/linux-g++/qmake.conf . 这个平台相对于源代码目录的qmake.conf文件路径是qtbase/mkspecs/linux-g++/qmake.conf I added following lines at the very bottom of this file: 我在这个文件的最底部添加了以下行:

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

Now Qt build platform uses my custom compiler instead of existing system one, and it adds my custom linker flags. 现在Qt构建平台使用我的自定义编译器而不是现有的系统编译器,它添加了我的自定义链接器标志。

The easiest way is to use : 最简单的方法是使用:

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

Now Qt will use your custom compiler instead of existing system one. 现在Qt将使用您的自定义编译器而不是现有的系统编译器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM