Linux下编译并使用 curl 静态库
2011-03-04 16:09
411 查看
windows下面编译并使用 curl 静态库我就不说了, 很简单。。。。。。
linux下面 编译后生成了 libcurl.a 文件,
但是在程序中静态链接 这个 libcurl.a 文件, 会发生很多的链接错误, 如果是动态链接 libcurl.a 文件则不会发生什么问题。
/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_init':
(.text+0xcd1): undefined reference to `SSL_library_init'
/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_connect_common':
(.text+0x1ba9): undefined reference to `SSL_get1_session'
上面随便挑几个错误。。。
后来经过一番折腾, 突然恍悟, 只需要添加下面的链接, 问题即可解决啊
-lcrypto -lidn -lssl /usr/lib/libcurl.a
这样编译生成的 可执行程序里面用 命令
ldd 文件名 执行后, 依赖库里面已经没有 libcurl.so.4 的依赖项了。。。。
如果你用上面的选项还是出现链接错误,比如下面这样的东东
ldap.c:(.text+0x91): undefined reference to `ldap_url_parse'
请你编译 curl库的时候 用下面的指令生成 makefile文件
./configure --disable-ldap --disable-ldaps ,
编译好后在链接即可。
linux下面 编译后生成了 libcurl.a 文件,
但是在程序中静态链接 这个 libcurl.a 文件, 会发生很多的链接错误, 如果是动态链接 libcurl.a 文件则不会发生什么问题。
/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_init':
(.text+0xcd1): undefined reference to `SSL_library_init'
/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_connect_common':
(.text+0x1ba9): undefined reference to `SSL_get1_session'
上面随便挑几个错误。。。
后来经过一番折腾, 突然恍悟, 只需要添加下面的链接, 问题即可解决啊
-lcrypto -lidn -lssl /usr/lib/libcurl.a
这样编译生成的 可执行程序里面用 命令
ldd 文件名 执行后, 依赖库里面已经没有 libcurl.so.4 的依赖项了。。。。
[root@localhost rtspProxy]# ldd proxy_D linux-gate.so.1 => (0x00bd5000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00cb7000) libpthread.so.0 => /lib/libpthread.so.0 (0x009da000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x00243000) libidn.so.11 => /usr/lib/libidn.so.11 (0x0061a000) libssl.so.6 => /lib/libssl.so.6 (0x007b0000) libm.so.6 => /lib/libm.so.6 (0x009ab000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b37000) libc.so.6 => /lib/libc.so.6 (0x00863000) libdl.so.2 => /lib/libdl.so.2 (0x009d4000) libz.so.1 => /usr/lib/libz.so.1 (0x009f3000) libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x003a0000) /lib/ld-linux.so.2 (0x00841000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00411000) libcom_err.so.2 => /lib/libcom_err.so.2 (0x00df1000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x004be000) libresolv.so.2 => /lib/libresolv.so.2 (0x0022e000) libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x004b3000) libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x0039b000) libselinux.so.1 => /lib/libselinux.so.1 (0x00101000) libsepol.so.1 => /lib/libsepol.so.1 (0x00da4000)
如果你用上面的选项还是出现链接错误,比如下面这样的东东
ldap.c:(.text+0x91): undefined reference to `ldap_url_parse'
请你编译 curl库的时候 用下面的指令生成 makefile文件
./configure --disable-ldap --disable-ldaps ,
编译好后在链接即可。
相关文章推荐
- Linux下编译并使用 curl 静态库
- 嵌入式 Linux下编译并使用curl静态库
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- Linux下g++编译与使用静态库和动态库
- Linux下g++编译与使用静态库和动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- linux gcc使用静态库去编译生成动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- linux下静态库、动态库的编译和使用
- linux下 编译和使用静态库
- Linux下g++编译与使用静态库和动态库的方法
- linux下简单编译与静态库编译使用
- 【Linux 相关】 静态库与动态库的编译和使用
- linux 下静态库和动态库的创建,编译,和使用
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- linux下静态库编译使用复杂版
- linux---动静态库编译及使用