Двоичный файл, сгенерированный компилятором MinGW, будет работать на машине без Mingw? - PullRequest
0 голосов
/ 30 ноября 2011

см. У меня есть код как

#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 compiler gcc.exe 4.6.1 и получил a.exe. Теперь я хочу спросить вас работает ли этот a.exe на другой машине с Windows, где MinGW не установлен?

Редактировать: Когда я компилирую этот код компилятором Cygwin и запускаю его двоичный файл на другой машине с Windows без Cygwin, он не запускается ... говорит, что в cygwin.dll отсутствует нечто подобное, эта ошибка появляется

1 Ответ

4 голосов
/ 30 ноября 2011

Если я правильно помню, это должно зависеть только от Microsoft CRT (msvcrt.dll, возможно, одной из самых старых версий, доступных в Windows) и других системных стандартных библиотек (kernel32.dll и др.), Но вы можете легко проверить это самостоятельно, изучив свой исполняемый файл с помощью Dependency Walker .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...