【问题标题】:how to compiling jsoncpp with /clr?如何用 /clr 编译 jsoncpp?
【发布时间】: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++ 中使用托管代码?在什么样的情况下?

标签: mfc c++-cli clr jsoncpp


【解决方案1】:

我不知道如何将评论标记为答案,这是@Hans Passant 的答案:

您无法链接使用 /MT 构建的静态库。您必须使用 /MD 重建库,这是对 C++/CLI 的严格要求。 – Hans Passant 11 小时前

我所做的是用 /MD 重建 jsoncpp 库及其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 2021-08-31
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 2011-04-12
    • 2011-06-06
    • 1970-01-01
    相关资源
    最近更新 更多