使用g ++在AIX上编译pthread.h

时间:2019-03-05 22:02:01

标签: c++ gcc posix aix

我尝试编译这个非常简化的程序:

#include <pthread.h>

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

像IBM一样使用-pthread表示:

$ 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。 我必须自己定义此对象还是通过添加一些标志来完成此操作?

THX!

1 个答案:

答案 0 :(得分:1)

除了定义符号_AIX_PTHREADS_D7之外,您还必须使用库libpthreads_compat

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