linux下编译动态库时提示:`Curl_cmalloc‘ can not be used when making a shared object; recompile with -fPIC

1. 序言

我在linux下编译动态库,其中使用到了curl的静态库,但是编译时报出错误:“`Curl_cmalloc’ can not be used when making a shared object; recompile with -fPIC”

在这里插入图片描述
我们知道编译动态库的时候编译 .o 文件的时候需要加 -fPIC 这个连接,而我链接的culr静态库库是没有加这个选项的

2. 为curl编译添加 -fPIC选项

在这里插入图片描述

CFLAGS="-I/home/erain/work/face_rk/libs/openssl-1.0.2o/_install -I/home/erain/work/face_rk/libs/openssl-1.0.2o/_install/include -fPIC" CPPFLAGS="-I/home/erain/work/face_rk/libs/openssl-1.0.2o/_install -I/home/erain/work/face_rk/libs/openssl-1.0.2o/_install/include -fPIC" LDFLAGS="-L/home/erain/work/face_rk/libs/openssl-1.0.2o/_install/lib" LIBS="-ldl -lssl -lcrypto" ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-ssl --enable-shared --enable-static --disable-dict --disable-ftp --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-tftp --disable-zlib --without-ca-bundle --without-gnutls --without-libidn --without-librtmp --without-libssh2 --without-nss --without-zlib --prefix=`pwd`/_install

加-fPIC选项后重新编译即可,再使用静态库就不会出现错误了

更多内容可参考

https://www.cnblogs.com/bigben0123/p/3304863.html

http://www.cnblogs.com/nobugtodebug/archive/2012/11/07/e6cd72c67b3dd843f40d7ce919f7336a.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值