Boost Python(Suse和Ubuntu)

1 投票
1 回答
662 浏览
提问于 2025-04-16 02:36

我创建了一个简单的 .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 ...

撰写回答