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

时间:2014-06-05 08:10:01

标签: c windows visual-c++ visual-studio-2012 exe

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

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

我能做些什么让它发挥作用?

谢谢,Tomas。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

标准C函数如printf,fopen和strlen由编译器供应商在预编译库和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函数链接到您的程序中,您只需将程序复制到另一台机器即可。
  3. Microsoft更喜欢DLL的原因是,对于DLL,您可以在每个使用相同DLL的文件夹中包含多个小程序。如果静态链接,你最终会得到多个更大的程序,每个程序都有相同的功能。