Visual Studio 2015: компиляция C / C++ без библиотеки времени выполнения
есть ли способ компиляции C / C++ с Visual Studio 2015 без использования библиотеки времени выполнения?
Мне нужно скомпилировать без библиотеки времени выполнения, потому что я создаю свою собственную библиотеку времени выполнения (для моей ОС).
есть опции на C / C++ - >генерация кода - >библиотека времени выполнения
но я хочу вариант, который говорит "нет".
Я знаю о потере многих функций, которые находятся в ЭЛТ.
1 ответов
для компиляции приложения без C-Runtime Library (CRT) используйте /MT
, /NODEFAULTLIB
параметры компоновщика и переопределить точку входа в Linker -> Advanced -> Entry Point
для функции, определенной в вашем коде, например rawMain
. Подпись:
DWORD CALLBACK rawMain();
без библиотеки C-runtime вам не разрешается использовать ее функции, такие как malloc
, free
, memset
, etc. Вы должны реализовать все используемые функции CRT самостоятельно. Е. Г. вы можете заменить использование malloc
by VirtualAlloc()
и free
by VirtualFree()
.
чтобы проверить, что C-runtime не связан с вашим приложением, используйте Зависимость Walker.