我尝试编译这个非常简化的程序:
#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!
答案 0 :(得分:1)
除了定义符号_AIX_PTHREADS_D7
之外,您还必须使用库libpthreads_compat
。
g++ -o marscode marscode.cc -D_AIX_PTHREADS_D7 -lpthreads_compat -lpthreads