我正在交叉编译需要特定标题的源文件。 此标头是SDK的一部分;它存在于我的sysroot中。标头的完整路径如下:
/pathtosysroot/sysroot/usr/include/some/nasty/long/path/header.h
即使我使用--sysroot=/pathtosysroot/sysroot
标志调用gcc,我仍然必须考虑some/nasty/long/path
部分以正确包含文件。
话虽这么说,C中是否有约定使用以下两个选项之一来到达我的.c文件中的此标头?
1-在#include中指定sysroot顶级include目录中的标头路径,这样它将从sysroot路径中找到标头:
#include <some/nasty/long/path/header.h>
2-在gcc包含标志中指定完整路径,仅#include头文件名:
gcc -I /pathtosysroot/sysroot/usr/include/some/nasty/long/path ...
在文件中:
#include <header.h>
作为一个补充说明,我希望使用第一个注释,因为很明显,此标头属于我要交叉编译的平台/ SDK。但是我经常看到第二种替代方法也被使用。