我目前正试图让一个程序在我无法控制的系统上编译。覆盖默认标题搜索路径
说我遇到的问题是包含目录是这样的:
/usr/include:
gmpxx.h gmp.h
/usr/local/include:
gmp.h
在我的cpp文件,我用
#include <gmpxx.h>
,这在发现的/usr/include
正确的文件,但是当gmpxx.h包含gmp.h时,它会从/usr/local/include
中抽取它,从而破坏构建。
现在,我看到3个非常难看的解决问题的方法
在我的cpp文件中添加
#include </usr/include/gmp.h>
拥有绝对包含路径是很丑陋和非便携式的,我认为这排序的东西应该属于Makefile而不是源代码。的
-nostdinc
标志添加到我的makefile,并手动指定include路径创建本地符号链接,我真的想库,然后做局部包括(
#include "gmp.h"
)
有没有更好的解决方案,我错过了?
是否允许修改gmpxx.h? –
我不是,唯一能改变的就是本地文件(cpp,makefile) – cobbal
#2有很大的意义。 Makefile显示了如何构建文件。另外两个人似乎很讨厌。 –