JSONCPP合并链接错误

时间:2011-10-03 02:40:35

标签: c++ linker-errors jsoncpp

我正在尝试使用jsoncpp(最新版本)的合并版本,但它产生了未解决的外部符号链接错误。我正在使用的代码是

#include <json/json.h>

int main(){
   Json::Value root;
   return 0;
}

它给了我错误

1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Json::Value::~Value(void)" (??1Value@Json@@QAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Json::Value::Value(enum Json::ValueType)" (??0Value@Json@@QAE@W4ValueType@1@@Z) referenced in function _main

2 个答案:

答案 0 :(得分:4)

可能你没有将JSONCPPs * .cpp文件包含到你的项目中(它们必须被编译和链接)。如果库被编译到静态库,则必须告诉链接器要链接的内容。

答案 1 :(得分:0)

当我尝试在我的x64构建中链接x86版本的JsonCpp时,出现了此错误。除非另有说明,否则我没有注意到Vcpkg的行为就像定义了 <p:dialog id="editDialog" header="#{messages.label_edit} #{msg.entrada_angulo_entrada}" modal="true" widgetVar="editDialogWidget" dynamic="true" showEffect="fade" hideEffect="explode"> <p:ajax event="close" update=":dataForm:data" listener="#{entradaAnguloBean.clean()}" /> <p:outputPanel id="editPanel"> <h:form id="editForm" enctype="multipart/form-data"> <h:panelGrid id="editPanelGrid" columns="3" styleClass="dialog" columnClasses="col1,col2,col3" /> </h:form> <ui:include src="/view/pantallas/secured/fragments/entradaAnguloForm.xhtml" /> </p:outputPanel> </p:dialog> 一样。

发生这种情况时,我在构建日志中看到了以下条目

  

C:\ Tools \ vcpkg \ installed \ x86-windows \ debug \ lib \ jsoncpp.lib:警告LNK4272:库机器类型'x86'与目标机器类型'x64'发生冲突[C:\ projects \ qpid-proton \ BLD \ cpp \ qpid-proton-cpp.vcxproj]