2017-01-09 102 views
0

我一直在試圖找出最後幾天的這一個,我沒有發現任何與網絡相關的東西。編譯.exe程序時生成的.lib

我有一系列使用Visual Studio 2012生成.exe文件的項目(該行爲也發生在新版本中)。我使用Property Sheets來設置所有編譯選項;因此,我所有的.exe項目中,我所有的CL & Link交換機都是一致的。我已經證實,在問題項目中沒有任何交換機在本地被覆蓋。

所以我的問題是,我的41個項目中的2個生成.lib & .exp文件以及所需的.exe文件。我從來沒有見過這個,我不太明白爲什麼那些將需要的.exe。就好像鏈接器暫時將項目視爲.dll一樣,但最終會生成一個.exe。

有人會知道這是否可以預期的行爲,在某些條件下?

感謝您的幫助。

我發現這個鏈接,這幾乎恰恰描述了我所得到的。但解決方案似乎並不適用於我的情況。

Why does my Visual C++ .exe project build create .lib and .exp files?

+0

當人們投票並且不提供任何解釋/理由時,總是討厭。感謝那無意義的反饋。 – ThermoX

+1

downvote可能是因爲您沒有提供足夠的信息來重現問題。 –

+0

它可能是..這個問題是相當通用的,因爲我一直在尋找可能性,一般來說,一個exe文件也可以生成這些文件。然而,最後它最終與鏈接中提到的原因一樣。現在,我沒有問題,人們投我的問題*提供*,他們給出瞭解釋。感謝您的輸入。 – ThermoX

回答

1

好吧......有更多的挖掘後,我終於發現了問題。

該問題確實與我提供的鏈接中提到的問題有關。某處,在一箇舊的Sun Microsystem庫(與portmap相關)下,有一個函數具有__declspec(dllexport)語句。即使這個庫被全部使用我的.exe項目,只有2個問題程序間接調用導出的函數。

回想起來......我應該直接查看.lib文件。它顯示了哪個單一功能被導出。