由MinGW编译器生成的二进制文件可以在没有Mingw的机器上运行吗?

时间:2011-11-30 17:03:22

标签: c windows mingw

看我有像

这样的代码
#include<stdio.h>
#include<pthread.h>
#include<string.h>

void* thread_function(void)
{
  printf ("This is thread %d \n",pthread_self())
}
int main(int argc,char *argv[])
{
    pthread_t thread_id[argc-1];
    int i;
    int status;
    printf("argc is %d ",argc-1);
   for(i=0;i<argc-1;i++)
    {
    pthread_create (&thread_id[i], NULL , &thread_function, NULL);
    }  

    for(i=0;i<argc-1;i++)
        pthread_join(thread_id[i],NULL);   
}

现在我已经通过 MinGw编译器gcc.exe 4.6.1 编译并获取a.exe现在我想问你这个a.exe是否可以在其他Windows机器上运行MinGW没有安装?

修改: 当我通过Cygwin编译器编译这个代码并在没有cygwin的其他Windows机器上运行它的二进制文件时它不会运行..那些cygwin.dll缺少类似的错误

1 个答案:

答案 0 :(得分:4)

如果我没记错的话,它应该只依赖于Microsoft CRT(msvcrt.dll,可能是Windows上最老的版本之一)和其他系统标准dll(kernel32.dll&amp; co。),但你可以很容易地通过使用Dependency Walker检查可执行文件,自行检查。