我对C++代码的工作Python包装(如这里Calling C/C++ from python? 建议)使用ctypes的。但问题是代码的主要功能。当我这样做调用INT主要()从蟒蛇
extern "C" {
void call_main(){ main();}
}
在我的C++代码,然后通过Python包装调用这个函数
...
lib = cdll.lib('./mylib.so')
def run():
lib.call_main()
- >我得到 “段错误”。
有趣的是,当我复制粘贴我的主要方法的代码到函数例如所谓的测试(所以它在C++代码INT测试(){....#粘贴代码...}),它的extern,然后调用lib.test()
=>和eveything工作正常...所以它必须是主函数被称为main或
听起来像你的C编译器以特殊的方式处理主函数。 – 2012-03-08 10:37:20
我相信在c中允许(/是?)递归调用main(),但不允许C++,因此编译器可能被允许对它做一些特殊的事情。 – BoBTFish 2012-03-08 10:53:12