Visual Studio 2012(及更早版本)能夠編譯C代碼。 Plain C,而不是C++。如果你想避免運行時間的尷尬,這將是一個很好的功能。我想編譯純C的二進制文件,並希望這樣做沒有MSVCRT
運行時。在沒有MSVCRT運行時的情況下在Visual Studio 2012中編譯C
添加/TC
(編譯爲C)選項後,我希望得到一個僅具有基本依賴項(如kernel32和ntdll)的二進制文件。而是,這是鏈接:
我們想用VS 2012和不運行。 GCC編譯器不需要它,所以必須有一種方法來編譯VS中的「簡單」二進制文件。我們不一定需要複雜的字符串函數或日期/時間庫,只需要簡單的代碼。
問題:是否可以在沒有MSVCRT運行時(甚至是C++代碼)的情況下編譯Visual Studio 2012中的C代碼?
編輯:沒有靜態鏈接(/MT
)
我對VS/Windows不太熟悉,但是'printf','strcmp','memcpy'這樣的東西駐留在哪裏呢?這是我的印象,MSVC運行時有點像Linux上的'libc.so'。 – us2012
爲什麼不用'/ MT'?我認爲它只鏈接你實際使用的東西?所以如果你不使用MSVCRT中的任何東西,它就不會鏈接任何東西。 – user2802841
我不確定,但我認爲'memcpy'也可以在不同的DLL中使用,更多地分佈在Windows電腦上。 – bytecode77