Cmake:创建二进制Foo 库libfoo

CMake: Create binary foo + library libfoo?

本文关键字:libfoo Foo 二进制 创建 Cmake      更新时间:2023-10-16

在我的cmakelists.txt中,我想创建一个名为foo的二进制文件和一个名为libfoo(.a | .so)的库。

所以我尝试使用以下代码:

add_executable(foo ${BIN_SRC})
add_library(foo ${LIB_SRC})

,但不幸的是,上面的代码失败了错误消息:

Make Error at CMakeLists.txt:156 (add_library):
add_library cannot create target "foo" because another target with
the same name already exists.  The existing target is an executable created

我在我的cmakelists.txt中有2个名为foo的目标是造成错误的。我可以使用:

修复错误
    add_library(libfoo ${LIB_SRC})

但是我的库被命名为liblibfoo(.a | .so),这不是我想要的!

可执行/库 file 的名称不与 target 相同。您可以使用output_name target的属性调整创建的文件名:

add_library(libfoo ${LIB_SRC})
set_target_properties(libfoo PROPERTIES OUTPUT_NAME foo)