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

Compile pthread.h stuff on AIX using g++

我试着编译这个非常简单的程序:

#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();

我也尝试了很多其他的 falgs,但到目前为止没有任何效果。 pthread.h 在 /usr/includes 中,但 pthread_yield() 需要 _AIX_PTHREADS_D7 定义。 我必须自己定义这个还是通过添加一些标志来完成?

谢谢!

除了定义符号 _AIX_PTHREADS_D7 你还必须使用库 libpthreads_compat

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