当前位置: 技术问答>linux和unix
静态链接为什么不通过?
来源: 互联网 发布时间:2016-11-26
本文导语: 我想静态链接openssl的库为什么不成功? 找不到实现? 但是 -I已经指明了头文件位置了,-L选项指明了库文件位置了。 [pro@rhel5 ~/openssl 06:32:10]$gcc -Wall -static -I/usr/local/openssl1.0.0d/include/ -L/usr/local/openssl1.0.0d/li...
我想静态链接openssl的库为什么不成功? 找不到实现?
但是 -I已经指明了头文件位置了,-L选项指明了库文件位置了。
源码
:
但是 -I已经指明了头文件位置了,-L选项指明了库文件位置了。
[pro@rhel5 ~/openssl 06:32:10]$gcc -Wall -static -I/usr/local/openssl1.0.0d/include/ -L/usr/local/openssl1.0.0d/lib -lcrypto rsagen.c -o rsagen
/tmp/ccqG3FNz.o: In function `main':
rsagen.c:(.text+0x3d): undefined reference to `RSA_generate_key'
collect2: ld returned 1 exit status
[pro@rhel5 ~/openssl 06:32:11]$
[root@rhel5 ~ 06:33:17]#ll /usr/local/openssl1.0.0d/
total 16
drwxr-xr-x 2 root root 4096 Apr 4 04:40 bin
drwxr-xr-x 3 root root 4096 Apr 4 04:40 include
drwxr-xr-x 4 root root 4096 Apr 4 04:40 lib
drwxr-xr-x 6 root root 4096 Apr 4 04:40 ssl
[root@rhel5 ~ 06:33:28]#ll /usr/local/openssl1.0.0d/lib/
total 3044
drwxr-xr-x 2 root root 4096 Apr 4 04:40 engines
-rw-r--r-- 1 root root 2651972 Apr 4 04:40 libcrypto.a
-rw-r--r-- 1 root root 442488 Apr 4 04:40 libssl.a
drwxr-xr-x 2 root root 4096 Apr 4 04:40 pkgconfig
[root@rhel5 ~ 06:33:47]#ll /usr/local/openssl1.0.0d/include/
total 4
drwxr-xr-x 2 root root 4096 Apr 4 04:40 openssl
[root@rhel5 ~ 06:33:52]#
源码
:
#include
#include
int main()
{
RSA *r=RSA_generate_key(2048,RSA_3,NULL,NULL);
return 0;
}
|
openssl是否已经编译?
|
跟头文件没有关系
另外,.o文件不是用-L链接的吧。。。。。并且也没见到你链接其它的库,估计你的函数就是那个.o文件里,想要用-L链接,把.o文件用ar打包成静态库,或者用gcc -shared生成动态库
另外,.o文件不是用-L链接的吧。。。。。并且也没见到你链接其它的库,估计你的函数就是那个.o文件里,想要用-L链接,把.o文件用ar打包成静态库,或者用gcc -shared生成动态库