使用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

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

相关文章:

  • 2021-06-13
  • 2021-09-02
  • 2021-07-27
  • 2022-12-23
  • 2021-07-29
  • 2022-01-16
  • 2021-11-26
  • 2022-12-23
猜你喜欢
  • 2021-07-25
  • 2021-12-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
相关资源
相似解决方案