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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/247338

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午2:11
下一篇 2023年2月14日 上午2:11

相关推荐