我目前正試圖讓一個程序在我無法控制的系統上編譯。覆蓋默認標題搜索路徑
說我遇到的問題是包含目錄是這樣的:
/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顯示瞭如何構建文件。另外兩個人似乎很討厭。 –