在Mac上,我想构建示例Boost.Python代码
hello.cpp
Animation an = AnimationUtils.loadAnimation(this, R.anim.rotate_anim);
an.fillAfter = true
sector.startAnimation(an)
我将#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
和Boost.Python
一起安装了
然后我编译了brew install boost-python --with-python3
,
hello.cpp
将生成一个g++ -fpic -c -L/usr/local/Cellar/boost/1.67.0_1/lib `python3.6m-config --includes --libs --ldflags` hello.cpp
文件。并通过
hello.o
文件
.so
但它返回了
g++ -shared -L/usr/lib -L/usr/local/Cellar/boost/1.67.0_1/lib -L/usr/local/Cellar/boost-python3/1.67.0_1/lib/ `python3.6m-config --libs --ldflags` -lboost_python3 -o hello_ext.so hello.o
或更详细的输出,带有ld: library not found for -lboost_python3
clang: error: linker command failed with exit code 1 (use -v to see invocation)
。
-v
我该如何解决?
答案 0 :(得分:0)
最后,我发现boost-python lib路径中没有这样的libboost_python37.dylib
$ ls /usr/local/Cellar/boost-python3/1.67.0_1/lib
libboost_numpy37-mt.a libboost_numpy37.a libboost_python37-mt.dylib libboost_python37.dylib
libboost_numpy37-mt.dylib libboost_numpy37.dylib libboost_python37-mt.a libboost_python37.a
所以我创建了一个软链接
$ sudo ln -s libboost_python37.dylib libboost_python3.dylib
我现在可以编译我的代码。