2010-05-05 37 views
2

我可以在Visual Studio中調整設置,以便它不會與任何運行時庫或MFC一起編譯。我開始學習C++以擺脫C#的.Net,這同樣糟糕。當我在Windows XP虛擬機中執行程序時,出現錯誤。我可以在沒有Code :: Blocks的依賴的情況下進行編譯,但是我更熟悉VS,並且更喜歡它的許多特性而不是Code :: Blocks。如果你知道要通過這個,它將不勝感激。謝謝。從VS08/10編譯C++而無需運行時庫/ MFC

+0

只需使用靜態鏈接的運行時庫,那麼依賴關係將包含在您的.exe中,而不必分開分發。 – jalf 2010-05-05 22:54:53

回答

4

您可以簡單地鏈接到CRT的靜態版本;只需進入項目屬性併爲版本配置指定「多線程(/ MT)」CRT而不是「多線程DLL(/ MD)」(您可以單獨保留調試配置,因爲您將運行它只是在你的機器上)。通過這種方式,您的可執行文件將僅依賴於「安全」系統dll;顯然,這會使您的可執行文件增長很多(例如,我需要在不依賴的情況下工作的小型控制檯應用程序從〜32 KB增加到〜200 KB)。

如果你只是想去沒有任何標準庫,你必須啓用「忽略默認庫」選項(或類似的東西,鏈接器選項),但請記住,這樣你幾乎不會有任何設施。

+0

值得注意的是,使用靜態鏈接的運行時,僅包含您實際使用的部分。完整的運行時庫比添加到您的應用程序的〜160KB大一點 – jalf 2010-05-05 22:56:28

+0

這工作,謝謝! – Lienau 2010-05-05 23:44:19

+0

@jalf:我知道,但我忘了提及它;謝謝你指出。 @Lienau:很高興幫助你。 :) – 2010-05-06 17:08:30

0

你沒有說你想要製作什麼樣的可執行文件。它是命令行,Windows winforms等?

您也可以查看適用於C++項目的NetBeans和Eclipse IDE。