包括每个平台上相同文件的头文件 我有一个文件 CPP选项。TXT < /COD>我编写了编译C++程序的每个编译器选项。

包括每个平台上相同文件的头文件 我有一个文件 CPP选项。TXT < /COD>我编写了编译C++程序的每个编译器选项。,c++,gcc,compilation,cross-platform,header-files,C++,Gcc,Compilation,Cross Platform,Header Files,我有g++作为g++@/path/to/cpp-options.txt$*,因此每当我从计算机上的任何位置调用g+prog.cpp,程序都会使用该文件中的所有编译器选项进行编译 现在,我想添加另一个选项,其中包括选项文件中的头文件header.h。此文件始终与cpp options.txt文件保存在同一目录中。 因此,现在的cpp options.txt文件如下所示: -Wall-Wextra….. -include/path/to/header.h 现在,此设置在Windows上运行得很好,但

我有
g++
作为
g++@/path/to/cpp-options.txt$*
,因此每当我从计算机上的任何位置调用
g+prog.cpp
,程序都会使用该文件中的所有编译器选项进行编译

现在,我想添加另一个选项,其中包括选项文件中的头文件
header.h
。此文件始终与
cpp options.txt
文件保存在同一目录中。
因此,现在的
cpp options.txt
文件如下所示:

-Wall-Wextra…..

-include/path/to/header.h

现在,此设置在Windows上运行得很好,但在Linux上不起作用,因为Linux上选项文件的绝对路径如下-:

/mnt/media……。/absolute/path/to/header.h

因此,编译器会抱怨Linux上没有这样的文件。
现在我知道了这个问题的一个解决方案,即在两个操作系统上的
路径
环境变量中包含保存这两个文件的文件夹,然后简单地写入-:

-Wall-Wextra…..

-包含标题.h

但是,我不想污染路径变量。

有没有其他方法可以做到这一点

我所能做的就是创建另一个只包含编译器选项(-Wall,-Wextra,-std=c++14等)的公共文件
cpp options common.txt
,并将
-include/path/to/header.h
语句移到
cpp options.txt
文件中。
另外,我使用
@
GCC编译器指令将
cpp options common.txt
文件导入到
cpp options.txt
文件中

我的最终配置-:

cpp-options-common.txt-:(位于Windows分区中)

在Windows上-:

cpp-options.txt-:

Linux-:

cpp-options.txt-:


制作符号链接(或Windows上的分叉),使两个系统上的路径相同?我不明白。它是如何解决问题的?如果路径在所有系统上都相等,则可以在参数文件中使用该路径。路径是文件的实际硬路径还是文件的一个或多个符号链接并不重要,但这就是问题所在!Windows上的任何文件在Linux上都不能具有相同的路径。它总是附加有
/mnt/media…
-Wall -Wextra -Wfatal-errors ...
@path/to/cpp-options-common.txt
-include path/to/header.h
@/media/Data/path/to/cpp-options-common.txt
-include /media/Data/path/to/header.h