簡體   English   中英

JSONCPP 合並鏈接錯誤

[英]JSONCPP Amalgamated link errors

我正在嘗試使用 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

可能您沒有將 JSONCPPs *.cpp 文件包含到您的項目中(它們必須被編譯和鏈接)。 如果庫被編譯為靜態庫,您必須告訴鏈接器鏈接什么。

我在我的 x64 版本中嘗試鏈接 x86 版本的 JsonCpp 時得到了這個。 我沒有注意到 Vcpkg 的行為就像定義了VCPKG_DEFAULT_TRIPLET=x86-windows ,除非另有說明。

發生這種情況時,我在構建日志中看到了以下條目

C:\\Tools\\vcpkg\\installed\\x86-windows\\debug\\lib\\jsoncpp.lib:警告 LNK4272:庫機器類型“x86”與目標機器類型“x64”沖突 [C:\\projects\\qpid-proton\\BLD\\ cpp\\qpid-proton-cpp.vcxproj]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM