【发布时间】:2016-08-30 00:44:44
【问题描述】:
有没有一种不用任何运行时库就可以用 Visual Studio 2015 编译 C/C++ 的方法?
我需要在没有运行时库的情况下进行编译,因为我正在创建自己的运行时库(用于我的操作系统)。
C/C++->代码生成->运行时库有选项
但我想要一个显示“无”的选项。
我知道丢失了 CRT 中的许多功能。
【问题讨论】:
-
最后我听说,用 Visual Studio 编译操作系统内核是不可能的——它根本不是为它设计的,它的许多部分都假设你在 WINdows 上运行。
-
还相关:Visual Studio 生成 PE 文件格式的可执行文件。您的操作系统运行什么文件格式?
-
另外:从这里开始:wiki.osdev.org/Visual_Studio 并直接进入“自定义 C++ 运行时”
-
这在技术上是可行的,只要 (a) 代码不进行任何 CRT 或 Win32 调用,并且 (b) 您覆盖默认入口点(_DllMainCRTStartup 或 _WinMainCRTStartup)默认为 CRT。然而,正如已经评论过的,您仍然会使用 Win32 ABI 获得 PE 格式的二进制文件。
-
@dxiv:虽然 PE 很有可能是我们所期望的,因为 UEFI 支持/使用(至少在某种程度上)。
标签: c++ c visual-studio crt