Python 使用numpy.ctypeslib.load\u库时出错
我有一个Python 使用numpy.ctypeslib.load\u库时出错,python,c++,linker,Python,C++,Linker,我有一个prog.cpp程序: #include <iostream> using namespace std; int main(int argc, char** argv){ printf("hello world\n"); return 0; } 但我得到了以下错误: Traceback (most recent call last): File "prog.py", line 7, in <module> lib = npct.l
prog.cpp
程序:
#include <iostream>
using namespace std;
int main(int argc, char** argv){
printf("hello world\n");
return 0;
}
但我得到了以下错误:
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
回溯(最近一次呼叫最后一次):
文件“prog.py”,第7行,在
lib=npct.load_库('lib_prog','
(...)
OSError:/my_dir/lib_prog.so:未定义的符号:_ZSt4cout
我的程序似乎与任何有关如何使用numpy.ctypeslib.load\u库的示例完全相同。有人对发生的事情有什么见解吗
提前谢谢。我发现你只需要在int main…
之前添加extern“C”
愿这对今后几年的任何人都有所帮助 这是一个链接器错误。您必须先加载标准库。(或者,您可以在链接器命令行中使用-lstdc++将其声明为依赖项)什么是我的标准库?您的标准库是从std
命名空间提供符号的库。它可能是libstdc++,但在您的系统上可能会有所不同。但这不是python错误,因此请使用适当的标志重新标记它(这最多与python相关)。这是一个链接器问题,我正在使用Ubuntu 18.04。你是说问题出在使用名称空间std的行中吗代码>?
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