繁体   English   中英

如何在 C win32 控制台应用程序 EXE 文件中保存包含的库

[英]How to save an included library in C win32 Console application EXE file

我开始用 C 编程,我有Visual Studio 2012。

我在 Win32 ConsoleApplication 中编写我的程序,当我查看项目中的 Debug 时,有一个 EXE 文件,它可以工作,但是当我尝试从其他不运行 Visual Studio 的计算机上运行它时,它不起作用。

我能做些什么让它工作?

谢谢,托马斯。

转到项目属性,然后:C/C++ -> 代码生成 -> 运行时库,然后根据您的配置选择 MT 或 MTD 选项(对于发布 MT 和调试 MTD)

标准 C 函数如printffopenstrlen由编译器供应商在预编译库和 DLL 中提供。 项目中的默认设置是不将所有标准函数直接链接到您的程序中,而是将它们保存在一个额外的 DLL 中,让您编译的程序只使用该 DLL。 在装有 Visual Studio 的机器上,存在该 DLL。 在您的另一台机器上,该 DLL 不存在。

有两种方法可以解决:

  1. 查看C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\redist并将您需要的 DLL 复制到目标机器。
  2. 您可以转到项目设置“C/C++”/“代码生成”并将设置“运行库”更改为名称中不包含“DLL”的值(/MT 和 /MTD)。 然后编译器直接将所有标准 C 函数链接到您的程序中,您只需将程序复制到另一台机器即可。

Microsoft 更喜欢 DLL 的原因是,使用 DLL,您可以在一个文件夹中拥有多个小程序,每个小程序都使用相同的 DLL。 如果静态链接,您最终会得到多个更大的程序,其中每个程序都内置了相同的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM