python - 动态加载库的 CMake 输出名称?

标签 python cmake shared-libraries boost-python

我正在尝试编写 cmake 规则以在 linux 上使用 boost.python 为 python 构建动态加载库。我想使用 'foo' 作为 python 模块名称。因此,该库必须称为 foo.so。 但是默认情况下,cmake 使用标准的库命名规则,所以如果我写

add_library(foo foo.cpp)

我会在输出时得到 libfoo.so。 甚至 set_target_properties(foo PROPERTIES OUTPUT_NAME "foobar") 将创建 libfoobar.so.

如何改变这种行为?

最佳答案

您可以使用此行取消设置前缀:

set_target_properties(foo PROPERTIES PREFIX "")

关于python - 动态加载库的 CMake 输出名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1564696/

相关文章:

c++ - 在现代 CMake 中设置全局选项?

c++ - 可用编译器的 Homebrew 列表

c++ - 在不破坏兼容性的情况下可以在 .so 库中更改什么

c++ - 从 macdeployqt 中排除框架

c - 如何找出库中缺少的函数,但哪些函数存在于与库一起发布的公开头文件中?

python - 从python中的c dll获取char数组作为字符串

python - 将两个路径与公共(public)文件夹组合

python - python 中的 sys.excepthook 行为

python - 将 numpy 一维数组转换为邻接矩阵

c++ - CMake:运行链接命令时出错:%1 不是有效的 Win32 应用程序