LINUX.ORG.RU

pthread C++


0

0

Подскажите в чем проблема.
Есть:
//-----cthread.cpp
#include "cthread.h"

bool cThread::create_thread()
{

return pthread_create(&pthread_id, NULL, thread_int, this);
return true;
}

void* cThread::thread_int(void *param)
{

return NULL;
}

//-----cthread.h
#ifndef CTHREAD_CLASS
#define CTHREAD_CLASS

#include <iostream>
#include <cstdlib>
#include <pthread.h>

class cThread
{
public:
cThread(){};
~cThread() {};
bool create_thread();

private:
static void* thread_int(void *param);
pthread_t pthread_id;

};

#endif
//-----main.cpp
#include "cthread.h"
#include <unistd.h>

using namespace std;

int main(int argc, char *argv[])
{
cThread *cth = new cThread();


cout << "Hello, world!" << endl;

cth->create_thread();
sleep(1);
return EXIT_SUCCESS;
}

все собирается на ура. Но при вызове pthread_create происходит
Segmtntation fault.

Подскажите почему ?!

anonymous

Дорогой ты мой человек. Код твой написан более мнее правильно. Все работает. Только вот насчет "все собирается на ура". тут я скажу так... Я толком не знаю почему (может гуру поправят), но на некоторых системах встречал я такой "подводный камень" для начинающих: все спокойно собирается без подключения lpthread (на Sun-e еще с lsocket таккой же фокус), но при вызове вадиться именно так как вы описываете...

"-lpthread", короче спасет отца русской демократии... Ну и -L с небоходимыми параметрами... ;)

tarle
()
Ответ на: комментарий от tarle

Спасибо. Ты был прав.
Я импользовал kdevelop3-rc1 и библиотеку эту подключал.
А почему он ее не присобачил - загадка :)
Вот я и весь мозг издумал, в чем же фокус.
Я тоже сталкивался, с таким фокусом, что все собирается и без библиотек,
а потом не работает:) А вот здесь не догнал :(
СПАСИБО !.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.