簡體   English   中英

是否可以使用Visual Studio 2013 Community Edition創建靜態庫C ++?

[英]Is it possible to create a static library C++ with Visual Studio 2013 Community Edition?

我有一個C / C ++ Visual Studio 2013社區版項目,該項目被定義為生成DLL,並且我想在另一個項目中使用“未定義符號”時感到非常痛苦,所以我決定看看它是什么如果更改項目設置,它將給出一個靜態庫。

因此,在項目的“屬性”窗口中,我轉到了

配置屬性>常規>項目默認值>配置類型

並將“配置類型”設置為“ 靜態庫 ”。目標擴展名為.lib

進行重建時,我仍在我的Release文件夾中獲得一個新的dll文件以及一個lib,並且DLL文件比lib文件大得多。 這使lib文件看起來像“導出lib”文件,並且看起來沒有任何變化。 如果我停止並重新啟動Visual Studio,仍然會發生這種情況。

我是否缺少某些東西,或者這看起來像是對您的錯誤?

在“ Configuration Properties - C/C++ - Runtime LibraryRelease配置更改為Multi-threaded (/MT) ,將Debug配置Multi-threaded Debug (/MTd)Multi-threaded Debug (/MTd)

設置屏幕截圖

另外,還要將“ Configuration Properties - General - General - Target extension設置為.lib

檢查所有配置的設置(如果使用它們,請ReleaseDebug )。

為什么更改項目類型? 如果需要DLL,請構建DLL。 發布在DLL編譯期間收到的確切錯誤。 也許您錯過了一些dllexport / dllimport declspecs。

關於.lib :您確定在構建期間生成了DLL嗎? 也許這是以前(DLL)配置的輸出? 您是否嘗試使用此.lib編譯測試應用程序? 也許它是有效的並且經過正確編譯?

另一件事:項目類型更改后,是否從函數簽名中刪除了所有dclspecs? 在構建靜態庫時,它們都不適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM