2010-10-15 140 views
0

當試圖鏈接我在Visual Studio 2008中的C++解決方案時,收到消息「LNK1104:無法打開文件'stlport_statix.lib'」。Visual C++說:「LNK1104:無法打開文件'stlport_statix.lib'」

我已經安裝了STLport,並且在Tools->Options->Projects And Solutions->VC++ Directories->Library Files中設置了正確的路徑。然而,STLport不提供名爲stlport_statix.lib的文件,只有stlport_static.lib

Visual Studio有什麼想法將結尾'c'與'x'交換?

請注意,這可能是一個非常簡單的錯誤,因爲我不熟悉Microsoft堆棧(來自Linux/gcc背景)。

編輯︰我已經找到'x'來自哪裏,它意味着「動態RTL建立靜態STLport lib」。構建STLPort的人不會構建該版本,因爲我們不應該使用它。

EDIT2:我現在想弄清楚爲什麼Visual Studio是與/MD建設,即使項目設置爲使用/MT下的「代碼生成」。這似乎是問題的根源。

+0

你有一個名爲「stlport_statix.lib」的文件嗎? – kyndigs 2010-10-15 09:57:11

+0

不,我只有stlport_static.lib。 – knatten 2010-10-15 10:07:44

回答

0

問題解決。我在解決方案中使用了/MD而不是/MT,這是我忽略的一個項目。

詳細解釋:可以爲動態鏈接或靜態鏈接構建STLport。它也可以構建爲靜態鏈接,但是具有動態鏈接的運行時庫。後者導致名爲「stlport_statix.lib」的庫,而正常的靜態鏈接庫稱爲「stlport_static.lib」。

當你使用STLport建設,_auto_link.h決定什麼版本來鏈接,根據您是否使用/MD/MT

有關詳細信息,請參見_auto_link.h第27-39行和第_detect_dll_or_lib.h第32-65行(假定STLport 5.2.1)。

相關問題