2012-11-15 105 views
3

我是新來的c + +和Visual Studio 2012所以可能是問題是在屏幕和椅子之間。我執行了以下步驟;C++和錯誤protobuffers LNK2019:無法解析的外部符號

  1. 我做了一個簡單的原型文件與選項optimize_for = LITE_RUNTIME
  2. 與protoc創建匹配H和C文件
  3. 編譯libprotobuf-lite.lib
  4. 創建一個新的控制檯Visual Studio中的圖書館2012年項目。
  5. 複製libprotobuf-lite.lib所在的單個源文件。
  6. 創建一個新的文件夾命名爲protobuffers
  7. 複製的C,H和從protobuffers src目錄到protobuffers文件夾
  8. 添加了protobuffers文件夾作爲附加的谷歌目錄包含目錄
  9. 新增的庫文件鏈接器通過附加依賴項
  10. 編譯以下源文件;

    #include <iostream> 
    #include "protobuffers\genome.pb.h" 
    
    int main() 
    { 
        genomeMessage::Genome genome; 
        return 0; 
    } 
    
  11. 卡住......我得到以下錯誤;

    1>Source.obj : error LNK2019: unresolved external symbol "public: __cdecl genomeMessage::Genome::Genome(void)" ([email protected]@@[email protected]) referenced in function main 
    1>Source.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl genomeMessage::Genome::~Genome(void)" ([email protected]@@[email protected]) referenced in function main 
    1>C:\Projects\testproto\x64\Debug\testproto.exe : fatal error LNK1120: 2 unresolved externals 
    

所以我知道這是不是一個丟失的庫文件,因爲如果我移動庫文件鏈接器抱怨說,它不能找到它。問題是,我不知道如何解決這個問題......任何人?

回答

3

根據這樣的信息:

1>Source.obj : error LNK2019: unresolved external symbol "public: __cdecl genomeMessage::Genome::Genome(void)" ([email protected]@@[email protected]) referenced in function main 
1>Source.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl genomeMessage::Genome::~Genome(void)" ([email protected]@@[email protected]) referenced in function main 

聲明genomeMessage::Genome::Genome(void)genomeMessage::Genome::~Genome(void)是不是你的項目的一部分源文件。

尤其是,您聽起來好像沒有將genome.pb.cc文件(由Protocol Buffers編譯器創建)添加到您的項目中。

+0

你是完全正確的!最後一個簡單的錯誤:( – Aktaeon

相關問題