我正在尝试使用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头文件完全复制到其他地方?
答案 0 :(得分:1)
您可以使用-iquote选项:
仅在
#include "file"'; they are not searched for
#include'的情况下,将目录dir添加到要搜索头文件的目录列表的头部,否则就像-I一样。
因此,您将使用""
样式包含指令包含自定义标头:
#include "libdir1/lib1.h"
#include "libdir2/lib2.h"
但<>
样式的标准标题:
#include <stdlib.h>
然后使用-iquote
而不是-I
添加目录:
-iquote../include