2013-03-06 30 views
1

我試圖交叉編譯arm7板在x86-64 Ubuntu上使用工具鏈。我需要的標頭是在這裏的文件系統:交叉編譯應用程序和gcc使用標頭錯誤的標頭

.../include/<libdir1> 
.../include/<libdir2> 
[more] 
.../include/<libdirN> 

但.../include目錄包含了不兼容的標準頭文件(的原因,我無法控制)。使用-I選項會導致gcc使用這些不兼容的標準頭,而不是它應該使用的頭。在此之前包括帶-I選項的所有兼容標準頭路徑也不起作用。

我想用的時候,我本身編譯,也爲ARM7板爲同一來源的路徑:

#include <libdir1/lib1.h> 
#include <libdir2/lib2.h> 
... 
#include <libdirN/libN.h> 

有沒有辦法做到這一點使用文件系統,因爲它目前存在還是我需要將lib1,lib2,... libN頭文件完全複製到別的地方?

回答

1

你可以使用這個選項-iquote

目錄dir添加到目錄列表的頭部要搜索只爲#include "file"'; they are not searched for的#include」的情況下,頭文件,否則就像-一世。

所以,你會包括你的自定義頁眉與""風格包括指令:

#include "libdir1/lib1.h" 
#include "libdir2/lib2.h" 

但標準的頭與<>風格:

#include <stdlib.h> 

然後用-iquote而不是添加的目錄-I

-iquote../include