Boost Python(Suse和Ubuntu)
我创建了一个简单的 .so 库,这个库里面定义了一个 C++ 类,我想从 Python 中访问这个类,为此我使用了 boost python 库。在我用 x64 Ubuntu 测试这个库的时候,只需要在运行 Python 之前设置一下 LD_LIBRARY_PATH,把 boost 库的路径加进去就可以了。不过,在 x64 Suse 上这样做就不行了。虽然我设置了 LD_LIBRARY_PATH,但 Python 似乎不理会这个设置。
在 Suse 系统中,有没有什么特别的方法来设置环境变量呢?
1 个回答
0
你永远不应该设置 LD_LIBRARY_PATH
,具体原因可以参考这里和这里。
首先,我假设你是把Boost库安装在了一个不常见的位置,否则加载器会自动找到它们。如果你有机器的管理员权限,建议把库安装在一个标准的位置(比如用包管理工具,或者放在 /usr/local/lib
目录下)。
如果你没有管理员权限,那就设置运行路径。使用gcc链接器时,可以通过传递一个 -rpath
选项来实现。gcc编译器可以通过 -Wl
将选项传递给链接器。所以你可以这样调用编译器:
g++ -Wall -Wextra -Wl,-rpath /path/to/boost -L /path/to/boost -lboost_python ...