gcc -L -l 找不到静态库?

时间:2021-03-28 12:39:13
[root@localhost src]# gcc -Wall -g -o httpsclient https-client.c -I../toolkit/openssl/include -Wl,-Bstatic -L../toolkit/openssl -lssl -lcrypto -ldl
https-client.c:259:2: warning: no newline at end of file
/usr/bin/ld: skipping incompatible ../toolkit/openssl/libssl.a when searching for -lssl
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
[root@localhost src]# gcc -Wall -g -o httpsclient https-client.c -I../toolkit/openssl/include -static -L../toolkit/openssl -lssl -lcrypto -ldl
https-client.c:259:2: warning: no newline at end of file
/usr/bin/ld: skipping incompatible ../toolkit/openssl/libssl.a when searching for -lssl
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
[root@localhost src]# gcc -Wall -g -o httpsclient https-client.c -I../toolkit/openssl/include -static -L. -lssl -lcrypto -ldl
https-client.c:259:2: warning: no newline at end of file
/usr/bin/ld: skipping incompatible ./libssl.a when searching for -lssl
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
[root@localhost src]# gcc -Wall -g -o httpsclient https-client.c -I../toolkit/openssl/include  -L. -lssl -lcrypto -ldl
https-client.c:259:2: warning: no newline at end of file
/usr/bin/ld: skipping incompatible ./libssl.a when searching for -lssl
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status

可以用全路径是能找到libssl.a的 可是用-L -l这种方式应该是可以的 之前放在openssl找不到 又放到程序目录也找不到 不明白这样为什么找到静态库 请指教...

8 个解决方案

#1


目测你的.a根本不是在这个机器上编译的,不兼容。

#2


不是啊 make install的openssl 写全路径是可以用的 就是-L -l 这样的方式不行 不知道是编译器还是环境的问题  

#3


是不是连接器配置文件的问题找不到 虽然问题是解决了(可以用写全路径解决)但是还是想知道是什么原因

#4


找到一篇http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1786166
可能就是这个原因

#5


你的-L路径下有ssl的库?

#6


安装静态库了吗?
fedora下是 yum install openssl-static

#7


ldconfig 

#8


ldconfig 可以配置这个 

#1


目测你的.a根本不是在这个机器上编译的,不兼容。

#2


不是啊 make install的openssl 写全路径是可以用的 就是-L -l 这样的方式不行 不知道是编译器还是环境的问题  

#3


是不是连接器配置文件的问题找不到 虽然问题是解决了(可以用写全路径解决)但是还是想知道是什么原因

#4


找到一篇http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1786166
可能就是这个原因

#5


你的-L路径下有ssl的库?

#6


安装静态库了吗?
fedora下是 yum install openssl-static

#7


ldconfig 

#8


ldconfig 可以配置这个