makefile, используя пользовательский каталог и библиотеку - PullRequest
0 голосов
/ 10 марта 2010

Я написал make-файл:

all: server client
server: server.o des.o sha1.o
/usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -o server server.o des.o sha1.o -I /usr/local/include/ -lgmp 
client: client.o des.o sha1.o
/usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -o -lgmp client client.o des.o sha1.o -I /usr/local/include/ 
server.o: server.c
/usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -c -lgmp server.c -I /usr/local/include/
client.o: client.c
/usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -c -lgmp client.c -I /usr/local/include/
des.o: des.c des.h
/usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -c -lgmp des.c -I /usr/local/include/
sha1.o: sha1.c sha1.h /usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -c -lgmp sha1.c -I /usr/local/include/

clean: -rm *.o server client

тогда gcc сказал мне, что не может найти -lgmp. Я пытался поставить его в других местах, были другие разные ошибки ...

В плюс, я хочу знать, возможно ли поместить 2 элемента в цель.

Большое спасибо

Ответы [ 4 ]

4 голосов
/ 10 марта 2010

Возможно, вам нужно предоставить компилятору опцию -L, чтобы добавить каталог, содержащий библиотеку gmp, в список искомых каталогов.

, например

-L/usr/local/lib

или

-L/usr/local/arm-2009q1/lib

Поскольку вам кажется, что вы выполняете кросс-компиляцию, вам нужна кросс-скомпилированная версия gmp, доступная по пути, который вы передаете с опцией -L.

2 голосов
/ 10 марта 2010

Пожалуйста, используйте опцию -L и укажите путь, где присутствует gmp, перед добавлением -lgmp в ваш make-файл.

0 голосов
/ 10 марта 2010

Спасибо еще раз за ответы выше! Он находит библиотеку .. но приходит другая проблема:

/usr/local/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation
/usr/local/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/local/lib/libgmp.so when searching for -lgmp
/usr/local/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/local/lib/libgmp.a when searching for -lgmp
/usr/local/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgmp
collect2: ld returned 1 exit status
make: *** [server] Error 1
0 голосов
/ 10 марта 2010

Немецкий учебник по марке: http://www.ijon.de/comp/tutorials/makefile.html

Можно использовать подстановочные знаки в целях, да.

вы можете указать путь вместе с -l / some / where / libgmp.so, например,

Или посмотрите параметр -L в gcc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...