error: no such file or directory: linker input unused; Wunused-command-line-argument

文章目录

    • 1. 前言
    • 2. 问题现象
    • 3. 问题点code
    • 4. 问题根因
    • 5. 解决方案

1. 前言

最近改makefile,改出一个bug,浪费了比较多时间,在网上未找到解决方案,分享出来,避免再次踩坑

2. 问题现象

linux下makefile编译报错:

clang: error: no such file or directory: ' -I'
clang: error: ***android-ndk-r15c/platforms/android-24/arch-x86_64/usr/include: 'linker' input unused [-Werror,-Wunused-command-line-argument]

3. 问题点code

FLAG += -DPRINT_LOG \
        $(INCLUDE) \
        -Wall \
        -Werror \
        -DCSDN=\"${CSDN}\" \

4. 问题根因

  • FLAG最后一行不应该加’\',加了会导致两个问题
  • 问题1:FLAG CSDN后跟了一个’ -I’,注意:-I前有被转义的空格。即前文中第一个报错error,clang会认为这是一个文件路径,当然找不到此路径
  • 问题2:由于’ -I’被clang认为文件路径,则后文包含头文件的选项未生效,clang无法识别此选项,无法使用,故报错Wunused-command-line-argument(未使用的命令参数)
clang -O2 -mthumb -target arm-linux-guneabi -DCSDN=\"csdn\" \ -I ***android-ndk-r15c/platforms/android-24/arch-x86_64/usr/include

5. 解决方案

FLAG最后一行去掉换行符

FLAG += -DPRINT_LOG \
        $(INCLUDE) \
        -Wall \
        -Werror \
        -DCSDN=\"${CSDN}\"

你可能感兴趣的:(编译问题,编译链接,gcc,linux,gnu)