1. 程式人生 > 程式設計 >關於c++編譯protobuf時提示LNK2001 無法解析的外部符號的問題

關於c++編譯protobuf時提示LNK2001 無法解析的外部符號的問題

在所在配置完成後編譯protobuf時還是提示如下

LNK2001無法解析的外部符號 "union google::protobuf::internal::EmptyString google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3TEmptyString@123@A)

真坑啊,各種操作猛如虎後結果還是不行。

vs2017裡設定如下

然後查要在引用的標頭檔案裡增加 #define PROTOBUF_USE_DLLS,但是編譯時會報protobuf.lib的重定義錯誤,於是把PROTOBUF_USE_DLLS

定義放到工程的前處理器定義裡就好了。這是vs2017裡的做法。

Qt編輯器設定如下

在Makefile檔案中定義預編譯巨集定義 PROTOBUF_USE_DLLS 方法如下:

CFLAGS:= -DPROTOBUF_USE_DLLS

而在qt的 .pro檔案中新增方法如下:

DEFINES +=PROTOBUF_USE_DLLS

到此這篇關於關於c++編譯protobuf時提示LNK2001 無法解析的外部符號的問題的文章就介紹到這了,更多相關c++ LNK2001 無法解析的外部符號內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!