1
我想开始使用boost:蟒蛇在我的C++程序中嵌入Python,但我已经有这个简单的代码问题:未定义参考:pyton程序
#include <boost/python.hpp> //boost libraries
#include <Python.h> //python libraries
using namespace boost::python;
int main()
{
Py_Initialize();
object main_module = import("__main__");
object main_namespace = main_module.attr("__dict__");
return 0;
}
我刚开始解释和导入主模块,但编译器已经有问题是:
/home/i7941878/Code/pythonTest/main.cpp:-1: error: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
/home/i7941878/Code/pythonTest/main.cpp:-1: error: undefined reference to `boost::python::import(boost::python::str)'
/home/i7941878/Code/pythonTest/main.cpp:-1: error: undefined reference to `boost::python::api::getattr(boost::python::api::object const&, char const*)'
我没有线索为什么我收到那些错误。我非常确定提升:Python构建正确。
任何人都能照亮我吗?
我正在使用QT创建器来编译和编译。 如果我编译使用G ++与-I/usr/include -I/usr/include/python2.6 main.cpp
我得到:
/tmp/ccI8x97b.o: In function `main':
main.cpp:(.text+0xc): undefined reference to `Py_Initialize'
main.cpp:(.text+0x30): undefined reference to `boost::python::import(boost::python::str)'
/tmp/ccI8x97b.o: In function `boost::python::api::object::object()':
main.cpp:(.text._ZN5boost6python3api6objectC2Ev[_ZN5boost6python3api6objectC5Ev]+0xd): undefined reference to `_Py_NoneStruct'
/tmp/ccI8x97b.o: In function `boost::python::api::const_attribute_policies::get(boost::python::api::object const&, char const*)':
main.cpp:(.text._ZN5boost6python3api24const_attribute_policies3getERKNS1_6objectEPKc[boost::python::api::const_attribute_policies::get(boost::python::api::object const&, char const*)]+0x26): undefined reference to `boost::python::api::getattr(boost::python::api::object const&, char const*)'
/tmp/ccI8x97b.o: In function `boost::python::str::str(char const*)':
main.cpp:(.text._ZN5boost6python3strC2EPKc[_ZN5boost6python3strC5EPKc]+0x1f): undefined reference to `boost::python::detail::str_base::str_base(char const*)'
collect2: ld returned 1 exit status
我编码和用qt创作者编译,在pro文件我有 'INCLUDEPATH + =在/ usr /包括/ python2.6的/' 这是路径Python和 'INCLUDEPATH + =/usr/include /' 这是boost库的路径 – leoncvlt
@MegaLeon包含路径不是问题。你还需要链接这些库,你显然没有这样做。 –
的确,我不得不在.pro文件中导入库。我希望包括头文件就够了。谢谢! – leoncvlt