C:如何制作允许链接到外部库的makefile?

时间:2011-03-17 14:32:52

标签: c compiler-construction makefile

就像,我认为我很接近......只是不确定我做错了什么,

cfann : main.o
    main.o -l libfann

main.o : main.c
    gcc -c main.c

clean: 
    rm -rf *o cfann

我收到此错误:

main.o -l libfann
make: main.o: No such file or directory
make: *** [cfann] Error 1

3 个答案:

答案 0 :(得分:4)

变化:

cfann : main.o
    main.o -l libfann

为:

cfann : main.o
    gcc main.o -lfann -L/usr/local/lib -o cfann

这假设libfann.o在/ usr / local / lib中 - 如果它实际上在其他地方,则更改上面的-L路径。

答案 1 :(得分:3)

您需要替换:

cfann : main.o
    main.o -l libfann

有类似的东西:

cfann : main.o
    gcc -o cfann -L/path/to/libs main.o -lfann

-L允许您指定(多个)路径以搜索库,-l列出库名称。 lib通常会为您添加前缀,.a.so等可能的扩展名也会为您添加。

您的原始makefile正在尝试运行 main.o作为命令,而不是它应该运行的gcc

答案 2 :(得分:0)

试试这个

cfann : main.o

main.o : main.c
    gcc -c main.c -lfann

clean: 
    rm -rf *o cfann

或者,也许没有空的cfann线

cfann : main.c
    gcc -c main.c -lfann

clean: 
    rm -rf *o cfann