/usr/bin/ld找不到标头:未识别的文件格式

/usr/bin/ld cannot find headers: File format not recognized

本文关键字:识别 格式 文件 usr bin ld 找不到      更新时间:2023-10-16

尝试编译程序时,我将获得以下输出:

    /usr/bin/ld: cannot find headers/dir1: File format not recognized
/usr/bin/ld: cannot find headers/dir1/dir11: File format not recognized
/usr/bin/ld: cannot find headers/dir1/dir12: File format not recognized
/usr/bin/ld: cannot find headers/dir1/dir13: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [all] Error 1

该项目由.c和.cpp源以及main.cpp(local_src_files(组成。目录和子目录dir*/dir*(local_c_includes(包含.h标头文件。

我用来编译的命令是:

gcc $(LOCAL_SRC_FILES) -I $(LOCAL_C_INCLUDES)

我已经看到了多次讨论此问题,但通常与未识别的库有关,而不是标题文件。

您对为什么会发生这种情况有任何建议吗?

如果您在命令行上展开变量,则会得到类似的东西:

gcc file1.cpp file2.cpp -I headers/dir1 headers/dir2

由于标头/dir2没有" -i" gcc将其视为源文件。命令需要:

gcc file1.cpp file2.cpp -I headers/dir1 -I headers/dir2