所以,我正在尝试将 Python 嵌入到 C++ 中。我已经走得很远了,并且已经能够做一些基本的事情,比如运行 Python 字符串。当我尝试使用 Boost::Python::Object 时,我开始收到这 4 个链接器错误。
我使用 BJAM 和 Boost 1.54.0 和 Python 2.7.5 构建了 boost。
Python Lib 构建命令:
bootstrap
.\b2 toolset=msvc-10.0 --with-python
最小代码示例:
#include <boost/python.hpp>
#include <iostream>
int main(int, char **)
{
Py_Initialize();
PyRun_SimpleString("import Entity");
boost::python::object main_module = boost::python::import("__main__");
boost::python::object main_namespace = main_module.attr("__dict__");
Py_Finalize();
std::cin.get();
return 0;
}
链接器错误:
1>PythonTest.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class boost::python::api::object __cdecl boost::python::import(class boost::python::str)" (__imp_?import@python@boost@@YA?AVobject@api@12@Vstr@12@@Z) referenced in function _main
1>PythonTest.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __thiscall boost::python::detail::str_base::str_base(char const *)" (__imp_??0str_base@detail@python@boost@@IAE@PBD@Z) referenced in function "public: __thiscall boost::python::str::str(char const *)" (??0str@python@boost@@QAE@PBD@Z)
1>E:\Dev\PythonTest\Debug\PythonTest.exe : fatal error LNK1120: 2 unresolved externals