如何禁止Qt Creator自动使用特定的包含路径?
How to prohibit Qt Creator to use specific include path automatically?
我在同一台 CentOS
机器上使用 2 个不同的 GCC
版本(包含在 OS 一个和自定义一个中),我不想更换系统 GCC
对于我的定制版,我使用定制版仅构建一些软件。
问题是 Qt Creator
添加 /usr/include
自动包含文件夹,因此自定义 GCC
开始使用系统 C++ 包含并崩溃并出现奇怪的错误消息,如 error: '::memchr' has not been declared
。我的 *.pro
文件中的任何地方都没有 /usr/include
,所以看起来 Qt Creator
自己添加了它们。
如何禁止 Qt Creator
项目使用某些特定的包含补丁以允许在具有 2 GCC
版本的机器上编译?当我在同一台机器上使用 Eclipse CDT
时,它工作得很好,因为 Eclipse 本身不添加任何东西,只使用我指定的 include 目录。
您可以使用 CXXFLAGS += -nostdinc
.
这应该执行以下操作(摘自手册):
Do not search the standard system directories for header files. Only the directories you have specified
with -I options (and the directory of the current file, if appropriate) are searched.
不是很优雅的回答,如果有人有更好的想法,还是欢迎大家post回答,我采纳。
因此,我在 qmake
和 make
命令之间添加了自定义构建步骤,并在此自定义构建步骤中使用 sed
命令动态编辑 Makefile
并删除额外的包含。这个解决方案有效,但是它很难看。
我在同一台 CentOS
机器上使用 2 个不同的 GCC
版本(包含在 OS 一个和自定义一个中),我不想更换系统 GCC
对于我的定制版,我使用定制版仅构建一些软件。
问题是 Qt Creator
添加 /usr/include
自动包含文件夹,因此自定义 GCC
开始使用系统 C++ 包含并崩溃并出现奇怪的错误消息,如 error: '::memchr' has not been declared
。我的 *.pro
文件中的任何地方都没有 /usr/include
,所以看起来 Qt Creator
自己添加了它们。
如何禁止 Qt Creator
项目使用某些特定的包含补丁以允许在具有 2 GCC
版本的机器上编译?当我在同一台机器上使用 Eclipse CDT
时,它工作得很好,因为 Eclipse 本身不添加任何东西,只使用我指定的 include 目录。
您可以使用 CXXFLAGS += -nostdinc
.
这应该执行以下操作(摘自手册):
Do not search the standard system directories for header files. Only the directories you have specified with -I options (and the directory of the current file, if appropriate) are searched.
不是很优雅的回答,如果有人有更好的想法,还是欢迎大家post回答,我采纳。
因此,我在 qmake
和 make
命令之间添加了自定义构建步骤,并在此自定义构建步骤中使用 sed
命令动态编辑 Makefile
并删除额外的包含。这个解决方案有效,但是它很难看。