zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    IE浏览器兼容问题
    sublime text3插件和快捷键
    CSS3高级
    盒子模型
    css3动画
    FreeBSD port安装 *** [checksum] Error code 1
    vs 2008设置vs6.0字体
    android 无法读取lua文件问题2
    u盘安装centos6 x8664
    cocos2dx lua 路径问题的一个bug (网络整理)
  • 原文地址:https://www.cnblogs.com/weiweisuhe/p/6266317.html
Copyright © 2011-2022 走看看