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

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

  • 相关阅读:
    REST framework框架的基本组件
    GIT如何根据历史记录回退代码
    如何查看磁盘存储空间
    git免密拉取代码
    windows好用的cmd命令
    git如何新建分支
    screen命令
    解决windows配置visual studio code调试golang环境问题
    转载一篇棒棒的AWK教程
    解决Creating Server TCP listening socket 54.179.160.162:7001: bind: Cannot assign requested address
  • 原文地址:https://www.cnblogs.com/weiweisuhe/p/6266317.html
Copyright © 2011-2022 走看看