[英]CMake Visual Studio linking executable with static library
我有一個非常簡單的(目前僅是main.cpp)CMake C ++項目,我正在嘗試在Mac OS X和Windows上進行構建。 這取決於libgsasl,我在兩個平台上都將其編譯為靜態庫。
Mac OS X編譯時沒有問題,Windows編譯時也不會抱怨,並生成EXE。 當我嘗試在Windows上運行EXE時,它給出一條錯誤消息,指出該應用程序無法運行,因為找不到libgsasl.dll。
我什至不試圖鏈接到動態庫,而是靜態庫(.lib版本)。 我想念什么嗎? 在Visual Studio中,看起來gsasl.lib文件已找到並包含在鏈接命令中。
在MS工具鏈中,.lib可以是靜態庫,也可以是實際DLL的導入庫。
您可以使用dumpbin窺視庫內部以查看其實際類型。 有兩種不同的方式來處理細節,但是我的首選技術是使用/ summary選項。 導入庫將具有.idata $ n節(其中n是整數),而靜態庫將具有.text節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.