不同的编译器......我是否需要为所有人安装可再发行的库?

时间:2011-06-11 19:02:33

标签: c compiler-construction

假设我们有一个简单的c代码:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    printf("hello\n");
}

如果我们用icc编译这个源代码,那么最终的可执行文件是否需要在windows7机器上运行任何额外的库?如果我用visual studio编译它会发生什么?我是否需要为我使用的每个编译器安装不同的可再发行库?有什么方法可以避免这种情况吗?如果我将所需的库文件复制到具有可执行文件的同一目录中,它会起作用吗?

2 个答案:

答案 0 :(得分:1)

使用TDM MinGW进行编译 - 除了MSVCRT.DLL之外,没有依赖项,而且所有最新版本的Windows都附带了它。

答案 1 :(得分:1)

链接CRT的静态版本。在msvc中完成了Project + Properties,C / C ++,代码生成,运行时库= / MT或/ MTd。不知道icc,它应该有类似的东西。

默认为/ MD使用CRT的DLL版本。但是您必须确保在目标计算机上安装了DLL。 / MD是安全的选择,当你使用带有暴露C ++类的导出函数的DLL时,你不会遇到内存管理问题,比如std :: string。