【发布时间】:2015-01-16 14:56:48
【问题描述】:
我最近在我的 mfc 项目中使用了 jsoncpp,它工作正常。但是当我尝试使用 /clr 编译项目时,我得到下面的链接器错误:
1>lib_json.lib(json_writer.obj):错误 LNK2038:检测到“RuntimeLibrary”不匹配:值“MT_StaticRelease”与 Brusher.obj 中的值“MD_DynamicRelease”不匹配
1>lib_json.lib(json_value.obj):错误 LNK2038:检测到“RuntimeLibrary”不匹配:值“MT_StaticRelease”与 Brusher.obj 中的值“MD_DynamicRelease”不匹配
1>lib_json.lib(json_reader.obj):错误 LNK2038:检测到“RuntimeLibrary”不匹配:值“MT_StaticRelease”与 Brusher.obj 中的值“MD_DynamicRelease”不匹配
1>lib_json.lib(json_writer.obj) : error LNK2001: unresolved external symbol "__int64 const std::_BADOFF" (?_BADOFF@std@@3_JB)
1>lib_json.lib(json_writer.obj) : 错误 LNK2001: 无法解析的外部符号 "public: static class std::locale::id std::ctype::id" (?id@?$ctype@D@ std@@2V0locale@2@A)
1>lib_json.lib(json_writer.obj) : 错误 LNK2001: 无法解析的外部符号 "private: static int std::locale::id::_Id_cnt" (?_Id_cnt@id@locale@std@@0HA)
我该如何解决这个问题?
【问题讨论】:
-
您无法链接使用 /MT 构建的静态库。您必须使用 /MD 重建库,这是对 C++/CLI 的严格要求。
-
谢谢@HansPassant,我已经用 /MD 重建了 jsoncpp 库及其工作......我意识到这显然是一个愚蠢的问题......
-
再次感谢老兄,谢谢你帮我解决了这个问题。但我发现有多少人会在 C++ 中使用托管代码?在什么样的情况下?