1

我正在尝试使用 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 头文件完全复制到其他地方?

4

1 回答 1

1

您可以为此使用-iquote选项:

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

因此,您将使用""样式包含指令包含自定义标头:

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

<>但是带有样式的标准标题:

#include <stdlib.h>

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

-iquote../include
于 2013-03-06T18:50:29.023 回答