执行Makefile时出现致命错误

时间:2016-04-15 07:16:15

标签: unix makefile object-files

我目前正在进行一项任务,要求我构建一个

的Makefile
  • 创建一个包含目录
  • 将math330.h文件复制到include目录
  • 创建一个lib目录
  • 将trig和exp中的.c文件编译为目标文件
  • 制作图书馆
  • 将库安装到lib目录
  • 针对include和library目录编译cli程序

所以我为此编写了大部分代码,但是当我尝试将.o用于trig文件夹中的trig函数时,我一直都会遇到错误。错误是

trig/cos330.c:1:10: fatal error: 'math330.h' file not found

这只是我需要帮助的最后一部分!有人能给我一些关于我能做什么的提示吗?谢谢!

all:
    mkdir -p ./include
    mkdir -p ./lib
    cp math330.h ./include
    gcc -l ./include/ -c trig/*.c
    gcc -l ./include/ -c exp/*.c
    mv *.o ./lib/
    ar r libmath.a lib/*
    mv libmath.a lib/
    gcc -l ./include/ cli/cli.c -L ./lib -lmath -lm

clean:
    rm -rf include
    rm -rf lib
    rm a.out

1 个答案:

答案 0 :(得分:1)

指定包含目录的选项是大写I(I),而不是小写L(l)。

gcc -I ./include …

小写的ell表示库名。给定-l ./include,可怜的链接器会有精神分裂的时间寻找要链接的库lib./include.alib./include.so(可能在./lib目录中),它可能不会'找到它。但它没有那么远。