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

Ant*_*kov 36 python cmake shared-libraries boost-python

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

add_library(foo foo.cpp)
Run Code Online (Sandbox Code Playgroud)

我会得到libfoo.so输出.甚至set_target_properties(foo PROPERTIES OUTPUT_NAME "foobar") 会创造libfoobar.so.

如何改变这种行为?

ric*_*chq 57

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

set_target_properties(foo PROPERTIES PREFIX "")
Run Code Online (Sandbox Code Playgroud)