многопоточность в кодовых блоках

Я пытался реализовать многопоточность, используя кодовые блоки в Ubuntu.
Я набрал следующую программу.

void *myThreadFun(void *vargp)
{

    sleep(1);
    printf("Printing hi from Thread \n");
    return NULL;
}

int main()
{

    pthread_t tid;
    printf("Before Thread\n");
    pthread_create(&tid, NULL, myThreadFun, NULL);
    pthread_join(tid, NULL);
    printf("After Thread\n");
    exit(0);
}

Но я не смог скомпилировать и запустить программу в кодовых блоках. Я получил следующую ошибку

multithread.c  undefined reference to 'pthread_create'
multithread.c  undefined reference to 'pthread_join'

, может ли кто-нибудь мне помочь

Я использовал следующие заголовочные файлы в коде:

pthread.h
stdio.h
stdlib.h
2
задан 2 January 2015 в 18:15

3 ответа

В Code :: Blocks, если вы используете компилятор GNU gcc, вам, вероятно, понадобится добавить флаг компилятора -pthread как к параметрам компилятора, так и к компоновщику (в `Project -> Build options ... )

Code::Blocks compiler options

Code::Blocks linker options

0
ответ дан 2 January 2015 в 18:15

Не забудьте убедиться, что вы правильно установили библиотеки pthread. Вы можете найти его в центре программного обеспечения в разделе "libpthread-stubs0-dev" или просто установить, выполнив:

sudo apt-get install libpthread-stubs0-dev.

Кроме того, я не совсем понял, во-первых, что вам нужно просто ввести -pthread вручную ...

0
ответ дан 2 January 2015 в 18:15

Пройдите эта ссылка , проблема не с codeblocks и не с компилятором также. Проблема, кажется, с компоновщиком, я попробовал Ваш код в затмении, я получаю ту же ошибку, если я не использую:

gcc -pthread -o multithread multithread.c

Hope, которая помогает. Считайте больше здесь .

0
ответ дан 2 January 2015 в 18:15

Другие вопросы по тегам:

Похожие вопросы: