交叉编译应用程序和gcc使用头错误的头



我正在尝试在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头文件完全在其他地方吗?

您可以使用-iquote选项:

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

所以你会包含你的自定义头与""风格的include指令:

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

但是<>样式的标准标头:

#include <stdlib.h>

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

-iquote../include

相关内容

最新更新