我有这个prog.cpp
程序:
#include <iostream>
using namespace std;
int main(int argc, char** argv){
printf("hello world\n");
return 0;
}
我有这个prog.py
程序,应将main
加载到python函数中:
import subprocess
import numpy.ctypeslib as npct
subprocess.call(['gcc', '-Wall','-c', '-fPIC', 'prog.cpp', '-o', 'prog.o'])
subprocess.call(['gcc', 'prog.o', '-shared', '-o', 'lib_prog.so'])
lib = npct.load_library('lib_prog', '.')
fun = getattr(lib,'main')
fun()
但是我遇到以下错误:
Traceback (most recent call last):
File "prog.py", line 7, in <module>
lib = npct.load_library('lib_prog', '.')
(...)
OSError: /my_dir/lib_prog.so: undefined symbol: _ZSt4cout
我的程序似乎与任何有关如何使用numpy.ctypeslib.load_library
的示例相同。有人会对发生的事情有任何见解吗?
谢谢。