十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
這篇文章給大家介紹使用c++編譯protobuf時(shí)提示無(wú)法解析的外部符號(hào)如何解決,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
在所在配置完成后編譯protobuf時(shí)還是提示如下
LNK2001 無(wú)法解析的外部符號(hào) "union google::protobuf::internal::EmptyString google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3TEmptyString@123@A)
真坑啊,各種操作猛如虎后結(jié)果還是不行。
vs2017里設(shè)置如下
然后查要在引用的頭文件里增加#define PROTOBUF_USE_DLLS
,但是編譯時(shí)會(huì)報(bào)protobuf.lib的重定義錯(cuò)誤,于是把PROTOBUF_USE_DLLS定義放到工程的預(yù)處理器定義里就好了。這是vs2017里的做法。
Qt編輯器設(shè)置如下
在Makefile文件中定義預(yù)編譯宏定義 PROTOBUF_USE_DLLS 方法如下:
CFLAGS:= -DPROTOBUF_USE_DLLS
而在qt的 .pro文件中添加方法如下:
DEFINES +=PROTOBUF_USE_DLLS
關(guān)于使用c++編譯protobuf時(shí)提示無(wú)法解析的外部符號(hào)如何解決就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。