2016-04-15 53 views
0

我目前的工作,需要我建立一个Makefile致命错误执行的Makefile

  • 创建一个包括目录
  • 副本math330.h文件到包括目录
  • 创建分配时一个lib目录
  • 编译三角函数和EXP的.c文件作为目标文件
  • 使库
  • 安装库lib目录
  • 编译反对和库目录

所以我大部分的编码下来此的CLI程序,但我不断收到错误,当我试图把的.o的对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

'-l'选项看起来不对。你想要'-I'还是'-L'? – tripleee

+0

这绝对不是创建'makefile'的好方法。请阅读一些关于编写makefile的介绍,或者在这里找到关于SO的问题 - 这里有很多选择。请你一回答就不要回避删除问题;它不是长期受欢迎的配方。 –

回答

1

指定的include目录的选项是资本-I(I),而不是小写的L(l)。

gcc -I ./include … 

小写的ell表示库名。鉴于-l ./include,贫穷的接头将有一个精神分裂的时间寻找一个图书馆lib./include.alib./include.so链接(可能在./lib目录),它可能不会找到它。但它没有那么远。