我正在尝试在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