我正在尝试使用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
答案 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]