2009-09-02 166 views
2

我試圖編譯一個使用第三方庫的包。我剛纔有這個工作,但現在它只是拒絕鏈接。以下是錯誤示例:xcode鏈接器錯誤

"lwpp::GlobalBase<char const*()(char const*)>::globPtr", referenced from: 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in main.o 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in license-2998A499.o 
    ... 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

第三方項目(lwpp)作爲子項目包含在內。我已經點擊並將其構建產品拖放到Targets> plugin_name> Link Binary With Libraries中,但它仍然不起作用。 如果我導入lwpp的源文件,那麼這些鏈接錯誤全部消失。我完全喪失了。

回答

1

顯然lwpp::GlobalBase< char const*()(char const*) > ::globPtr必須在某處定義。要麼你必須自己在一個源文件中定義它,或者如果它已經在庫中定義了,你可能需要在main.cpp中聲明它爲extern

+0

它在庫中定義。正如我所說,我已經有過它的工作,但現在xcode/gcc已決定它不會鏈接。我有一個朋友試了一下,對他來說,它在他的機器上鍊接並編譯好。我嘗試在我的機器上使用相同的項目文件,並且出現鏈接器錯誤。這個不成立。 – 2009-09-02 19:54:34

+0

我只是猜測在這裏,但問題可能是模板實例化...嘗試顯式實例化GlobalBase Dima 2009-09-02 23:19:44