C- GCC找不到以-i指定的DIR中的文件

  • 本文关键字:DIR 文件 GCC 找不到 c gcc
  • 更新时间 :
  • 英文 :


我需要在以下dir中包含一些特定于平台的JNI文件:

$ ls -l /home/ubuntu/jdk8/include/linux
total 8
-rw-r--r-- 1 ubuntu ubuntu 995 Mar 15 09:00 jawt_md.h
-rw-r--r-- 1 ubuntu ubuntu 824 Mar 15 09:00 jni_md.h

因此, gcc命令得到了适当的(?(增强:

gcc -I"/home/ubuntu/jdk8/include/linux" -I"$JAVA_HOME/include" ..

但是找不到linux子段内的文件:

gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4)
COLLECT_GCC_OPTIONS='-I' '"/home/ubuntu/jdk8/include/linux"' '-I' '/home/ubuntu/jdk8/include' ..

/home/ubuntu/jdk8/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory

那么这里需要调整什么?如果重要的话,这是在ubuntu 16.0.4`和

gcc --version
gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

update 这是jni.h

中的包含语句
#include "jni_md.h"  

现在他们如何期望找到 - 如果不是

#include <jni_md.h>

更新更新每个Arkadiusz Drabczyk和他提供的链接http://gcc.gnu.org/onlinedocs/cpp/cpp/include-syntax.html都应该可以。实际上,行为似乎是相同的。

Note 如果我将include/linux/*.h下的文件复制到父 include dir,则编译工作:因此,问题是包括路径。

yau (又是另一个更新(,我尝试了clang:同样的错误。

可能有可能,但不可能在目录字符串上需要拖延斜线。jni.h包括&lt; jni_md.h>还是" jni_md.h" ??

事实证明,选项的顺序正在混乱:我有

-I<something> -odmaserver.so  -I<something else>

它需要为

-I<something> -I<something else>  -odmaserver.so  

相关内容

最新更新