我创建了一个简单的 .so 库,其中包含一个 C++ 类的定义,该类应该从 Python 访问并用于此目的 boost python 库。当我使用 x64 Ubuntu 测试这个库时,在运行 python 之前将 LD_LIBRARY_PATH 设置为提升库的路径就足够了。但是,当我使用 x64 Suse 时,它不起作用。尽管我正在设置 LD_LIBRARY_PATH ,但 Python 似乎忽略了它。
Suse下有什么具体的设置环境变量的方法吗?
你不应该设置LD_LIBRARY_PATH
,看这里和这里。首先,我必须假设您将 Boost 库安装在非标准位置,否则加载程序会自动找到它们。如果您对机器有 root 访问权限,请将库安装在标准位置(例如,使用包管理器,或在 中/usr/local/lib
)。
如果您没有 root 权限,请改为设置运行路径。当使用 gcc 链接器时,通过传递一个-rpath
选项来做到这一点。gcc 编译器可以通过-Wl
. 所以调用编译器如下:
g++ -Wall -Wextra -Wl,-rpath /path/to/boost -L /path/to/boost -lboost_python ...