当前位置: 首页> 财经> 金融 > C++编译jsoncpp库

C++编译jsoncpp库

时间:2025/8/28 13:38:50来源:https://blog.csdn.net/q277055799/article/details/140726909 浏览次数:0次

下载
https://github.com/hailong0715/jsoncpp/tree/master

windows编译工程
jsoncpp-master\makefiles\vs71

1.msvcprtd.lib(MSVCP140D.dll) : error LNK2005
解决办法:
(1).工程(Project)->属性(Properties)->配置属性(Configuration Properties)->c/c++->代码生成(Code Generation)->运行时库(Use run-time library)->多线程调试DLL(/MDd)(Multithreaded DLL/Debug Multithreaded DLL)
编译库的工程和自己当前开发的工程,都要使用同样的设置。也就是json对应的.lib文件是分模式(Debug或Release)的,两种编译模式在两个工程配置中需要保持一致。
(2).如果两种模式的工程配置是一致的但是还是无法解决,就需要忽略出问题的库文件了。方法如下:
工程(Project)->属性(Properties)->配置属性(Configuration Properties)->链接器->输入->忽略特定库中添加重定义的库文件,这里是msvcprtd.lib和LIBCMTD.lib。

2.error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
Debug工程使用了Release的库文件。
如果出现 error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”。
那就是Release使用了Debug的库文件。


linux

undefined reference to `Json::Value::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
编译版本和开发环境部匹配,需要重新编译库 

python amalgamate.py
sudo yum install cmake
mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ../..
make

如果报错
./jsoncpp_test: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./jsoncpp_test)

find / -name libstdc++.so.*
strings /lib64/libstdc++.so.6.0.28|grep GLIBCXX
cd /lib64
ls -l libstdc*
mv libstdc++.so.6 libstdc++.so.6_bak2
sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6

关键字:C++编译jsoncpp库

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: