c++ - 使用 g++ 在 AIX 上编译 pthread.h 的东西
问题描述
我尝试编译这个非常简化的程序:
#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。我必须自己定义这个还是通过添加一些标志来完成?
谢谢!
解决方案
除了定义符号之外_AIX_PTHREADS_D7
,您还必须使用库libpthreads_compat
。
g++ -o marscode marscode.cc -D_AIX_PTHREADS_D7 -lpthreads_compat -lpthreads
推荐阅读
- java - Java:ReentrantLock 不起作用它仍然相互混合
- python - 如何删除每行特殊字符串之后的字符串
- arrays - 如何在C中删除数组中的字符串
- swift - 延迟添加注释直到搜索完成
- c# - 在 C# 中重命名和删除文件夹
- javascript - 在 javascript 中使用 Bootstrap 行和列
- javascript - 在 Angular 中处理外部点击引导模式
- python - Python - 编辑文本文件 - 特定案例
- javascript - Jest - 一个函数模拟多个测试文件的文件
- vba - 如何为列中的每个单元格删除单元格中 8 个数字的前 4 个数字?