如何在 CMake 中创建静态库(不可执行)?

How to create a static library (not executable) in CMake?

我是 cmake 的新手,我想知道如何创建静态库。在 gcc 中,可以通过以下方式完成:

ar rsv

嗯,你是如何使用 CMake 来做的?

add_library(mylib STATIC file1.cpp file2.cpp)
add_executable(myexe main.cpp)
target_link_libraries(myexe mylib)

这会生成一个静态库(.a 文件),但是如何在不添加可执行文件的情况下编译它? 如果我删除 add_executable(myexe main.cpp),它会给我一个错误。我只想要这个文件:

mylib.a

而不是

myexe.exe
mylib.a

我的错,我只需要删除:

add_executable(myexe main.cpp)
target_link_libraries(myexe mylib)

这会起作用。

add_library可以单独使用,根本不用add_executable。只需删除第 2 行即可删除可执行文件。该错误很可能是由第 3 行引起的,它需要 myexe 才能运行。第 3 行也应该删除,因为您只是构建库而不是链接它。