MPI的C++程序想用athread,编译出错?
-
请问一下包含mpi的C++程序,用sw5cc编译后,里面athread的部分总是报这个错误,请教一下是怎么回事哇?
-
c++调c再调athread, c++的类型检查比较严格
-
嗯嗯好的,解决啦。谢谢!
-
主要问题为athread.h中不包含给c++使用的extern "C"声明,以及c++严格的类型检查。
强行在c++中使用athread中请按照如下思路:
自行声明athread相关函数:extern "C" void __real_athread_spawn(void*, void*); extern "C" void int athread_join();
声明slave函数:
extern "C" void slave_func(void*);
调用(手动强制类型转换):
__real_athread_spawn((void*)slave_func, ¶m);
-
@jflfy 嗯嗯,的确是这个问题,非常感谢!