2011-08-24 96 views
1

我最近繼承了一個我已經清理並完成的項目。但是,有一個令人討厭的問題,就是竊聽我。每當我構建它時,它會在* .exe旁邊創建一個靜態庫(* .lib + * .exp文件)。 * .lib文件是不必要的。我不能爲了我的生活找到設置中的哪個位置來關閉它。它不會傷害任何東西來建立它,這只是令人討厭。Visual Studio 2010根據我的意願創建一個靜態庫

回答

1

我有同樣的問題,因爲我是一個很迂腐的人,我介意。所以我用

dumpbin /EXPORTS the_naughty_file.lib 

在不必要的.lib文件,它揭示了:

Microsoft (R) COFF/PE Dumper Version 9.00.21022.08 
Copyright (C) Microsoft Corporation. All rights reserved. 

Dump of file E:\my-projects\Robotics\SLAM_plus_plus\bin\Release\SLAM_plus_plus6.lib 

File Type: LIBRARY 

    Exports 

     ordinal name 

        [email protected]@@[email protected]@@Z (public: class std::_Init_locks & __thiscall std::_Init_locks::operator=(class std::_Init_locks const &)) 

    Summary 

     DB .debug$S 
     14 .idata$2 
     14 .idata$3 
     4 .idata$4 
     4 .idata$5 
     14 .idata$6 

而且一段時間的谷歌搜索後,我發現了一個post,解釋這是一個自動生成的功能,這是僅在使用動態鏈接的運行時庫時纔會生成(靜態不會這樣做)。

要解決該問題,要麼去項目屬性>C++>預處理,並添加:

_STATIC_CPPLIB 

還是去項目屬性>C++ >代碼生成並將運行時庫更改爲多線程(MT)

令人討厭的文件現在不見了,耶:)。不過,在Visual Studio 2008中測試過。但是,如果它不起作用,只需在.lib上使用dumpbin/EXPORTS來跟蹤導出並將其發佈到此處。

0

項目被指定爲靜態庫,或者解決方案中有一個項目是靜態庫。

+0

解決方案中只有一個項目,據我所知它不是一個靜態庫。 「配置類型」是「應用程序(.exe)」,「目標擴展名」是「.exe」。這些屬於[項目]屬性頁面>配置屬性>常規。還有什麼地方我應該看看? – BTR

相關問題