2009-10-16 88 views
0

我有一個非常簡單的(目前只是一個main.cpp)CMake C++項目,我試圖在Mac OS X和Windows上構建。它依賴於libgsasl,我已經在兩個平臺上將它編譯爲靜態庫。CMake Visual Studio鏈接可執行文件與靜態庫

Mac OS X的構建沒有問題,Windows在構建過程中也沒有抱怨並生成EXE。當我嘗試在Windows上運行EXE時,它會顯示一條錯誤消息,指出應用程序無法運行,因爲它找不到libgsasl.dll。

我甚至沒有試圖鏈接動態庫,只是靜態庫(.lib版本)。我錯過了什麼嗎?在Visual Studio中,它看起來像gsasl.lib文件被找到幷包含在鏈接命令中。

+0

你能發佈cl正在使用的確切命令來構建exe嗎? – 2009-10-16 18:15:48

+0

你可以發佈你的CMakeLists.txt嗎? – 2009-10-17 12:18:13

回答

1

在MS工具鏈中,.lib可以是靜態庫,也可以是實際DLL的導入庫。

您可以使用dumpbin來查看庫內部以查看它的實際類型。處理細節有幾種不同的方法,但我的首選技術是使用/ summary選項。一個導入庫將有.idata節$ n(其中n是一個整數),而一個靜態庫將有一個.text節。

相關問題