jsoncpp relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; ……...

使用jsoncpp 静态库出错解决过程

用C++在CLion 中使用 jsoncpp静态库 做解析一个json格式时 出现以下错误:

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;  ……

错误显示没写完,最后让加 -fPIC 编译选项。
解决方法是编译jsoncpp 加上 -fPIC 选项:
放弃scons编译(当然,scons也应该有解决方法,但我不熟悉),采用cmake编译:
1.新建编译目录

mkdir build
cd build

2.cmake

cmake -DCMAKE_CXX_FLAGS="-fPIC -Dnullptr=NULL"

3.make & make install

make -j4
sudo make install

屏幕上会打印出安装目录,我的是

-- Install configuration: "Release"
-- Installing: /usr/local/lib/pkgconfig/jsoncpp.pc
-- Installing: /usr/local/lib/libjsoncpp.a
-- Installing: /usr/local/include/json/reader.h
-- Installing: /usr/local/include/json/version.h
-- Installing: /usr/local/include/json/features.h
-- Installing: /usr/local/include/json/autolink.h
-- Installing: /usr/local/include/json/forwards.h
-- Installing: /usr/local/include/json/json.h
-- Installing: /usr/local/include/json/config.h
-- Installing: /usr/local/include/json/allocator.h
-- Installing: /usr/local/include/json/value.h
-- Installing: /usr/local/include/json/assertions.h
-- Installing: /usr/local/include/json/writer.h

想加入项目使用而不是作为系统库的话,去相应目录拷贝头文件和静态库就是了。

转载于:https://www.cnblogs.com/weiweisuhe/p/6266317.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值