ue4工程編譯時,如果只是將protobuf.lib鏈接進來,不加入protoc生成的代碼,那麼編譯時沒有問題的,但是如果加進來了,那麼就跪了:
error LNK2019: unresolved external symbol "public: __cdecl 。。。"
之前這個問題沒想明白,以爲可以通過設置工程來解決這個錯誤,後來想了想,protoc生成的代碼都是標準c++代碼,其頭文件定義class的位置沒有加入UE4工程的宏,比如:MyProject_API;另外cpp文件有沒有包含工程的頭文件,比如:#include "MyProject.h"。
如何解決呢,如果直接修改這些生成的代碼,貌似不科學,那麼能否像其他第三方庫一樣,打成lib再鏈接到UE4工程?我的處理方式就是這樣的,這個問題折騰了幾天今天終於徹底搞定了。