视觉工作室2012(和早期版本)能够编译 C 代码。Plain C,而不是 C++。如果您想避免运行时的麻烦,这将是一个很好的功能。我想过编译纯 C 二进制文件并希望这样做without the MSVCRT
运行。
添加后/TC
(编译为 C)选项我希望获得一个仅具有基本依赖项(例如 kernel32 和 ntdll)的二进制文件。但相反,这是链接的:
我们想使用 VS 2012 并且not运行时。 GCC 编译器不需要它,因此也必须有一种方法可以在 VS 中编译“简单”二进制文件。我们不一定需要复杂的字符串函数或日期/时间库,只需要简单的代码。
问题:是否可以在没有 MSVCRT 运行时(甚至 C++ 代码)的情况下在 Visual Studio 2012 中编译 C 代码?
Edit: without静态链接(/MT
)
“是否可以在没有 MSVCRT 运行时(甚至 C++ 代码)的情况下在 Visual Studio 20xx 中编译 C 代码?”问题的正确答案是使用 /MT 选项(Configuration Properties > C/C++ > Code Generation > Runtime Library=Multi-threaded (/MT)
)。这将创建一个与您想要的完全不依赖于任何 MSVCRTxx 的可执行文件。据我所知,这就是它的全部作用。它对您想做的任何事情都没有限制 - 所有标准 C 库函数(如 memcpy)仍然可以工作。唯一的区别是 .EXE 文件稍大一些。多年来,我一直在使用 MSVC6、MSVC2005、MSVC2008 和 MSVC2013 制作和分发从纯 ANSI C 代码创建的 EXE 文件,没有任何问题。
至于带有限定符“没有静态链接(/MT)”的问题的答案,嗯,你不能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)