C 使用自定义目录和库生成文件
我写了一个makefile:C 使用自定义目录和库生成文件,c,linux,gcc,C,Linux,Gcc,我写了一个makefile: 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-
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个元素。请使用-L选项并指定gmp所在的路径,然后再将-lgmp添加到您的makefile中。请使用-L选项并指定gmp所在的路径,然后再将-lgmp添加到您的makefile中。您可能需要为目标提供一个
-L
选项编译器将包含gmp
库的目录添加到搜索的目录列表中
e、 g
或
由于您似乎是在交叉编译,您需要一个gmp的交叉编译版本,该版本在您通过
-L
选项传递的路径中可用。您可能需要向编译器提供-L
选项,以将包含gmp
库的目录添加到搜索的目录列表中
e、 g
或
由于您似乎是在交叉编译,您需要一个gmp的交叉编译版本,该版本在您通过
-L
选项的路径中可用。关于make的德语教程:
可以在目标中使用通配符,是的
您可以指定路径以及-l/some/where/libgmp
或者看看gcc中的-L选项,这是一个关于make的德语教程: 可以在目标中使用通配符,是的 您可以指定路径以及-l/some/where/libgmp
或者再次查看gcc中的-L选项,以获得上述答案!它找到了图书馆。。但还有一个问题:
/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
再次感谢您的回答!它找到了图书馆。。但还有一个问题:
/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
这不是“答案”,而是进一步的问题。你应该问一个新问题,或者(在这种情况下可能更好)更新此问题,因为“答案”无法回答。这不是“答案”,而是进一步的问题。你应该问一个新问题,或者(在这种情况下可能更好)更新这个问题,因为“答案”无法回答。
/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