在 Visual Studio 2012 中编译 C,无需 MSVCRT 运行时

2024-04-09

视觉工作室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(使用前将#替换为@)

在 Visual Studio 2012 中编译 C,无需 MSVCRT 运行时 的相关文章

随机推荐

  • 在Delphi中销毁COM对象

    有一些 net程序集 通过COM在delphi中调用它 var intf ITest intf CreateComObject CLASS TEST as ITest here comes some stuff 我必须做点什么来破坏它以释放
  • COM 互操作、隔离和排除重复引用

    我们在我们编写的 C dll 程序集 A 中使用 Microsoft 提供的 COM DLL dsofile dll 为了避免必须注册 COM dll 我已将对 dsofile dll 的引用的isolated 属性切换为 true 这意味
  • 使用 CSS3 在文本上创建双色锐渐变

    我需要为我正在构建的网站上的标题和导航文本创建 锐利 渐变 我正在尝试使其尽可能纯 HTML5 CSS3 并且愿意坚持使用 font face而不是转移到Cufon 我所说的锐渐变是指两种颜色 两者之间没有混合 例子 http dl dro
  • Apache NIFI Jon 不会自动终止

    我是 Apache NIFI 工具的新手 我正在尝试从 mongo db 导入数据并将该数据放入 HDFS 中 我创建了 2 个处理器 第一个用于 MongoDB 第二个用于 HDFS 并且我正确配置了它们 该作业正在成功运行并将数据存储到
  • 由于错误而导致代码崩溃:无法从空集合中删除最后一个元素

    我正在尝试绘制一些数据图表 以下代码最初可以工作 并且有时可以工作 但现在似乎大部分崩溃 我认为 json 函数中的 if let data data 行意味着它只会运行一旦它收到数据 我有一种感觉 也许该函数在完全加载之前正在解包数据 但
  • 基于 STOMP 身份验证的 Spring 4 WebSocket

    我正在开发一个基于 Spring 4 WebSocket 的多人游戏 我的服务器是无状态的 因此为了识别玩家 我使用令牌 经过一段时间的努力 如何通过 WebSockets 识别玩家 我想出了这个解决方案 在客户端玩家寄存器上 如下所示 v
  • 如何计算 CRC 中使用的 XOR 余数?

    我试图记住如何计算循环冗余检查中的 XOR 算法的剩余部分以验证网络消息的剩余位 我不应该扔掉那本教科书 这在代码中很容易完成 但是如何手动计算出来呢 我知道它看起来像标准除法算法 但我不记得从那里去哪里获得余数 1010 10110100
  • RubyMine 对 jQuery 的支持

    我正在使用 RubyMine 3 1 开发 Rails3 应用程序 今天我从 Prototype 切换到 jQuery 以满足我的 UJS 需求 使用自定义一切后这个例子 http www stjhimy com posts 7 creat
  • 有没有通过 fstat() 的 POSIX 方法来检查文件是否是符号链接?

    有没有 POSIX 方式通过fstat 2 检查文件是否是符号链接 有旗帜O NOFOLLOW in open 2 可以检查它 但是 它不是 POSIX 有S ISLNK in fstat 2 其中说man fstat The S ISLN
  • 使用 webpack 构建 (React) 同构 web 应用程序的服务器部分,包括 CSS 样式加载器

    我正在尝试制作一个我正在开发的同构 React 应用程序 中的一个这样做的已知问题 https reactjsnews com isomorphic react in real lifewebpack 加载器允许import require
  • 使用点表示法访问对象的数字属性

    为什么我们不能使用点符号而不是方括号符号来访问这个类似数组的对象的属性 function testArray rat return typeof arguments console log testArray test object fun
  • 简单的 Javascript 替换为循环

    我尝试用数组索引值替换字符串中的所有出现位置 如下所示 var str a href 0 title 1 a var params params push Url TitleDisplay for i in params var x i g
  • 将 HTML 转换为 RDF

    我正在寻找一个通用的 API Web 服务 工具 等等 它允许将给定的 HTML 页面转换为尽可能具体的 RDF 图 最有可能使用主干本体和 或映射器 你证明了吗GRDDL http www w3 org 2001 sw wiki GRDD
  • C# 和 Java 中的方法重载

    我在 C 中运行了以下方法 public float Add float num1 long num2 Console WriteLine method 1 return 0 public float Add int num1 float
  • jquery Append() 中的 If 语句

    在我的 jquery Append 中 我不想运行 IF 语句来在除第一个对象之外的所有对象上包含图像 Like var i 0 divDetailsForSelectedInfo append div class roundedAndBo
  • 在 EF4.3 中的代码优先方法中为列设置十进制(16, 3)[重复]

    这个问题在这里已经有答案了 我怎样才能做到这一点 private decimal SnachCount Required DataType decimal 16 3 public decimal SnachCount get return
  • 如何使用jquery验证“取决于”除了“必需”之外的规则?

    我在网上找到的每个 取决于 的例子都使用 必需 规则 显然这还不够 如何将 depends 子句与 regex 规则等一起使用 我有两个单选按钮 如果选择一个 我将使用正则表达式验证文本框 如果选择另一个 我不在乎文本框中的内容 The 文
  • 大苏尔上的 mytop 在操作系统更新后停止工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 更新到 macos big sur 11 3 20E232 后 我无法再启动mytop从航站楼 当启动 mytop 通过brew 安装 时
  • 两个可观察量之间的差异

    假设我有两个可观察值 第一个可观察到的是某些列表的数组 id zzz other props here id aaa id 007 and more over time 第二个可观察对象是一组被忽略的列表 id 007 only id no
  • 在 Visual Studio 2012 中编译 C,无需 MSVCRT 运行时

    视觉工作室2012 和早期版本 能够编译 C 代码 Plain C 而不是 C 如果您想避免运行时的麻烦 这将是一个很好的功能 我想过编译纯 C 二进制文件并希望这样做without the MSVCRT运行 添加后 TC 编译为 C 选项