2011-07-19 122 views
0

好的,所以這變得非常非常煩人。我有一個非託管的VC 2010 ++解決方案,其中包含9個項目,其中兩個是爲其餘7個測試項目輸出靜態庫的項目。其中6個我沒有得到一個鏈接器錯誤,而在第7個配置完全相同的那些6,我目前有12個鏈接器錯誤,我不明白我做錯了什麼(如果我是根本就做錯了什麼)。Visual Studio 2010中的鏈接器問題

我已經試過:

  • 加入這兩個庫將直接使用Project -> Add-> Existing files
  • 項目聯繫起來與#pragma comment(lib,"libname.lib")指令
  • 添加引用在Project Properties -> Common Properties-> Framework and References
  • 在連接額外的依賴將他們(我檢查了路徑是否正確10次)

然而,我無法把它連接好幾個小時(是的,項目構建順序是按照它應該設置的)。我從來沒有遇到VS 2008的這些問題,我希望我不需要回滾到VS2008來解決這個問題,因爲我沒有足夠的時間再次設置Visual Studio。

那麼,有什麼建議嗎?

http://i47.servimg.com/u/f47/14/27/08/40/window10.png

http://i47.servimg.com/u/f47/14/27/08/40/window11.png

編輯:

file = fz_open_fd(fd); 
    error = pdf_open_xref_with_stream(&p_xref, file, NULL); 
    fz_close(file); 
    p_outline = pdf_load_outline(p_xref); 
    .... 
+0

http://i47.servimg.com/u/f47/14/27/08/40/window12.png http://i47.servimg.com/u/f47/二十七分之一十四/ 08/40/window13.png 其餘兩個截圖 – Savage

+0

PLS張貼代碼中的問題 –

回答

1

很難猜測。但是我看到一個名爲「cppwrapper」的源文件。這使得你可能正在封裝一些用C語言編寫的東西。這使得你必須明確地告訴編譯器這是C代碼而不是C++代碼。就像這樣:

extern "C" { 
    #include "foo.h" 
} 
+0

嗯,但lib中的函數聲明爲extern「C」?然而,這有點奏效。之後,LIBCMT.lib出現了一些問題,但我使用/ NODEFAULTLIB解決了它。非常感謝:) – Savage

+0

剛纔看到,即使我已經將extern「C」添加到函數本身,它們的名字仍然被破壞..:O – Savage

0

添加$(OutDir)到庫路徑

+0

這樣的: http://i47.servimg.com/u/f47/14/27/08/ 40/window14.png ? 仍然是一樣的^^ – Savage

+0

是的...像這樣。那麼鏈接器又如何呢? – Raiv