Скомпилируйте материал pthread.h в AIX, используя g ++ - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь скомпилировать эту очень упрощенную программу:

#include <pthread.h>

int main(){
    pthread_yield();
    return 0;
}

с использованием -pthread, как говорит сторона IBM:

$ g++ -pthread test.cpp -o test

и получите эту ошибку:

test.cpp: In function 'int main()':
test.cpp:4:15: error: 'pthread_yield' was not declared in this scope
pthread_yield();

Я тоже пробовал много других утилит, но пока ничего не получалось. Файл pthread.h находится в / usr / includes, но pthread_yield () необходимо определить _AIX_PTHREADS_D7. Нужно ли определять этот myselfe или это делается путем добавления какого-либо флага?

THX!

1 Ответ

1 голос
/ 06 марта 2019

Кроме определения символа _AIX_PTHREADS_D7 вы должны также использовать библиотеку libpthreads_compat.

g++ -o marscode marscode.cc -D_AIX_PTHREADS_D7 -lpthreads_compat -lpthreads
...