我有一个文件cpp-options.txt
,其中我编写了用于编译C ++程序的每个编译器选项。
我made an alias 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上没有任何此类文件
现在我知道这个问题的一个解决方案,就是在这两个操作系统上包含这两个文件保存在PATH
环境变量中的文件夹,然后简单地写 - :
-Wall -Wextra.....
-include header.h
但是,我不想污染 PATH变量 有没有其他方法来实现这一目标?
答案 0 :(得分:2)
我能做的最好的事情就是创建另一个公共文件cpp-options-common.txt
,它只包含编译器选项(-Wall,-Wextra,-std = c ++ 14等),并移动{{1} }语句到-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 - :
-Wall -Wextra -Wfatal-errors ...
Linux - :
cpp-options.txt - :
@path/to/cpp-options-common.txt
-include path/to/header.h