C: Как мне создать make-файл, который позволяет создавать ссылки на внешние библиотеки? - PullRequest
2 голосов
/ 17 марта 2011

Например, я думаю, что я близко ... просто не знаю, что я делаю неправильно,

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 ]

4 голосов
/ 17 марта 2011

Изменение:

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 выше, если он действительно где-то еще.

3 голосов
/ 17 марта 2011

Вам необходимо заменить:

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.

То, что делает ваш оригинальный make-файл, пытается запустить main.o как команду, а не gcc, которую он должен запустить.

0 голосов
/ 17 марта 2011

Попробуйте это

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...