collet2.exe: error: Id returned 1 exit status

C++ ошибка Компиляция

Компилятор не хочет компилить этот код и пишет

collet2.exe: error: Id returned 1 exit status

Что делать?


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


pthread_t id1,id2,id3;
int n[6];


void disp()
{
printf("\033[%i;%iH ",9,13);
printf("\033[%i;%iH ",9,45);
printf("\033[%i;%iH ",9,87);
printf("\033[%i;%iH ",12,28);
printf("\033[%i;%iH ",13,28);
printf("\033[36m\033[9;%dH%d\n",13,n[1]);
printf("\033[36m\033[9;%dH%d\n",45,n[2]);
printf("\033[36m\033[9;%dH%d\n",87,n[3]);
printf("\033[36m\033[12;%dH%d\n",28,n[4]);
printf("\033[36m\033[13;%dH%d\n",28,n[5]);
}


void pos(int ost)
{
int tv,tz;
tv=rand()%(n[4]+1);
n[4]-=tv;
n[5]+=tv;
if ((n[ost])>=(5-n[4])) {tz=5-n[4]; n[ost]-=tz; n[4]=5;} //чИПДЙФ УЛПМШЛП УНПЦЕФ
else {tz=n[ost]; n[4]+=tz;} //ЧНЕУФЙФШ ФБЛУЙ
printf("\033[%i;%iH ",14,28);
printf("\033[%i;%iH ",15,28);
printf("\033[36m\033[14;%dH%d\n",28,tv);
printf("\033[36m\033[15;%dH%d\n",28,tz);
disp();
}


// оБ ПУФБОПЧЛЕ
void *prid1(void *arg)
{
int nx,tt;
while(1)
{
nx=(rand()%3)+1; //чЩВЙТБЕН ПУФБОПЧЛХ
if ((n[5]>0)&(n[nx]<100)) {tt=(rand()%2); n[nx]+=tt; n[5]-=tt;}
else {if ((n[5]>1)&(n[nx]<100)) {tt=(rand()%3); n[nx]+=tt; n[5]-=tt;}};
disp();
sleep(rand()%2);
}
}


// уБНП ФБЛУЙ
void *prid2(void *arg)
{
int k=1, nap=0;
while(1)
{
if (nap==0)
{
printf("\033[35m\033[6;%dH%s\n",k,"‚ЂЂЂ§");
printf("\033[35m\033[7;%dH%s\n",k,"„ЂЂЂ­");
}
else
{
printf("\033[35m\033[6;%dH%s\n",k,"¤ЂЂЂѓ");
printf("\033[35m\033[7;%dH%s\n",k,"ЄЂЂЂ…");
};
usleep((int)arg);
switch (k) { //чЩЪПЧ РТПГЕДХТЩ
case 11 : sleep(2); pos(1); sleep(1); break; //рПУБДЛЙ-ЧЩУБДЛЙ
case 43 : sleep(2); pos(2); sleep(1); break; //ОБ ЛБЦДПК ПУФ.
case 85 : sleep(2); pos(3); sleep(1); break;
}
printf("\033[6;%dH%s\n",k," ");
printf("\033[7;%dH%s\n",k," ");
if (k==95) {nap=1; sleep(1);}; //уНЕОБ ОБРТБЧМЕОЙС
if (k==0) {nap=0; sleep(1);}; //ДЧЙЦЕОЙС ФБЛУЙ
if (nap==0) k++; else k--;
}
}


// ьФП МЙЫОЕЕ
void *prid3(void *arg)
{
while(1)
{
char textd[]=" ";
printf("\033[36m\033[20;%dH%s\n",30,"лХТУПЧБС ТБВПФБ РП пРЕТБГЙПООЩН УЙУФЕНБН.");
sleep(10); printf("\033[36m\033[20;%dH%s\n",30,textd); usleep((int)arg);
printf("\033[36m\033[20;%dH%s\n",30,"чЩРПМОЙМ: еТЕНЕОЛП е.б., ПО ЦЕ CooleR");
sleep(10); printf("\033[36m\033[20;%dH%s\n",30,textd); usleep((int)arg);
printf("\033[36m\033[20;%dH%s\n",30,"http://www.Sahalin.net");
sleep(10); printf("\033[36m\033[20;%dH%s\n",30,textd); usleep((int)arg);
}
}


int main()
{
int k,j,i;
for (i=1;i<=5;i++) n[i]=0;
printf("\033[36m\033[2;%dH%s",20,"чЧЕДЙФЕ ЛПМ-ЛП РБУУБЦЙТПЧ: ");
scanf("%d",&n[5]);
for(k=1;k<50;k++)
for(j=1;j<100;j++)
printf("\033[%i;%iH ",k,j);
for(k=5;k<95;k++)
{
printf("\033[33m\033[5;%iH ",k);
if ((k<11)||((k>15)&(k<43))||((k>47)&(k<85))||(k>89))
printf("\033[33m\033[8;%iH ",k);
else
{
if ((k==11)||(k==43)||(k==85))
{
printf("\033[32m\033[8;%iHҐ   Ё",k);
printf("\033[32m\033[9;%iHЎ Ў",k);
printf("\033[32m\033[10;%iH«   ®",k);
};
}
}
printf("\033[36m\033[12;%dH%s",2," ч ФБЛУЙ:");
printf("\033[36m\033[13;%dH%s",2,"рПФЕОГЙБМШОЩИ РБУУБЦЙТПЧ:");
printf("\033[36m\033[14;%dH%s",2," оБ ПУФБОПЧЛЕ ЧЩЫМП:");
printf("\033[36m\033[15;%dH%s",2," ъБЫМП:");
pthread_create(&id1,NULL,(void*)prid1,(void*)100000);
pthread_create(&id2,NULL,(void*)prid2,(void*)100000);
pthread_create(&id3,NULL,(void*)prid3,(void*)100000);
sleep(99999999999999999);
return 0;
}

Примечание:
Да все библиотеки подключены, да и пути я указал

Примечание:
Значится ошибка не в коде?

Примечание:
C:\MinGW\bin;C:\MinGW\msys\1.0\bin; То что прописано для этого в путях

Примечание:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\Redersy>cd C:\MinGW\bin


C:\MinGW\bin>gcc kurs.c
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x355): undefined r
eference to `sleep'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x40b): undefined r
eference to `sleep'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x423): undefined r
eference to `sleep'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x431): undefined r
eference to `sleep'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x449): undefined r
eference to `sleep'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x457): more undefi
ned references to `sleep' follow
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x842): undefined r
eference to `_imp__pthread_create'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x868): undefined r
eference to `_imp__pthread_create'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x88e): undefined r
eference to `_imp__pthread_create'
C:\Users\Redersy\AppData\Local\Temp\ccQzphvl.o:kurs.c:(.text+0x8a4): undefined r
eference to `sleep'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\R
edersy\AppData\Local\Temp\ccQzphvl.o: bad reloc address 0x20 in section `.eh_fra
me'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status

C:\MinGW\bin>

Примечание:
Я прокомпилил несколько кодов, (где есть sleep) и каждый раз он ругался только на него и вывод такой же и и в моем случае. А вот если компилить код без sleep, то все работает нормально
Ответы:
Это не компилятор, а линкер. Возможные причины: не завершена прошлая версия линкуемой программы, что-то не так с путями, или с правами доступа...
Да, а библиотека в командной строке присутствует (  -lpthread )?
MinGW не пользуюсь, вроде как, там функции sleep нет. Если это так, то можно написать что-нибудь типа:
#include <windows.h>
#define sleep(a) Sleep(a * 1000)
Только зачем тогда эти тулы под Windows использовать, может, лучше Линукс в VirtualBox поставить.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.