代码之家  ›  专栏  ›  技术社区  ›  David Brown Muad'Dib

即使搜索目录正确,GCC也找不到头

  •  2
  • David Brown Muad'Dib  · 技术社区  · 14 年前

    #include "PDL.h"
    

    然后,我试着编译:

    arm-none-linux-gnueabi-gcc -I/cygdrive/c/PalmPDK/include -I../lua-5.1.4/lua-webos/include -O2 -Wall -shared -nostdlib -mcpu=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp -lpdl
    

    PDL.h:没有这样的文件或目录

    我可以切换到上面指定的include目录,看到PDL.h在那里,但是GCC没有看到它。

    4 回复  |  直到 14 年前
        1
  •  4
  •   AProgrammer    14 年前

    /cygdrive是cygwin特有的东西,所以如果gcc没有编译成使用cygwinunix仿真层,它就不会搜索它。尝试使用 -IC:/PalmPDK/include

        2
  •  0
  •   Jay    14 年前

    如果路径中有空格,则需要将其转义或用双引号将路径括起来。

        3
  •  0
  •   John R. Strohm    14 年前

    ls -l /
    ls -l /cygdrive
    ls -l /cygdrive/c
    ls -l /cygdrive/c/PalmPDK
    ls -l /cygdrive/c/PalmPDK/include
    

    您可能会在上面列出的某个命令的结果中找到答案。

        4
  •  0
  •   bta    14 年前

    这个 #include "file.h" 语法在当前目录中查找,然后在默认情况下在头文件的include目录中查找。相反,使用 #include <file.h>

    -iquoteFOLDER_PATH point to your include directory on the command-line .

    编辑: 给出您对makefile的评论,确保您已经设置(和 export )那个 SHELL 贝壳 变量将用于执行makefile中的命令。您可以使用任何您想要的shell,只需确保指定一个或另一个,这样您就可以确保为给定shell使用正确的路径样式。为便于测量,还应设置(和 )那个 MAKESHELL 使用相同值的变量。