用头错报头交叉编译的应用程序和gcc(Cross-compiling application and

2019-10-17 19:09发布

我试图交叉编译使用上的x86-64 Ubuntu的工具链的ARM7板。 我需要的标头是在这里的文件系统:

.../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头文件别的地方完全?

Answer 1:

您可以使用-iquote此选项:

将目录dir添加到目录列表的头部要搜索的头文件只对的情况下#include "file"'; they are not searched for #include "file"'; they are not searched for的#include”,否则就像-I。

所以,你会包括你的自定义页眉""风格include指令:

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

但标准的头文件与<>风格:

#include <stdlib.h>

然后用添加的目录-iquote而不是-I

-iquote../include


文章来源: Cross-compiling application and gcc using headers wrong headers