在我的项目中有两个名为Test4
的文件:Structure.h
Structure.c
我想创建一个静态库,可以加载的其他项目谁想要使用这些文件。以下是我目前的CMake文件:
cmake_minimum_required(VERSION 3.6)
project(Test4)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES Structure.c Structure.h)
add_library(Test4 STATIC ${SOURCE_FILES})
当我使用该CMake文件进行构建时,不会生成任何静态库。什么都没发生。我做错什么了吗?
我正在使用CLion IDE。
4条答案
按热度按时间oknwwptz1#
add_library行应该是您所需要的全部。请看我刚刚写的这个示例代码,以测试创建一个并使用它(在Ubuntu 16.04上):
结构h:
结构c:
Main.c:
CMakeLists.txt:
然后这里是运行它的输出:
xwbd5t1u2#
我也有同样的问题。我错过的是创建构建文件的位置。
CLion在
cmake-build-*
目录下创建库或可执行文件。如果Build, Execution, Deployment > CMake > Configuration
是Debug
,则在cmake-build-debug
下创建lib文件(.a
)。b0zn9rqh3#
在你使用命令 cmake . 后,Makefile将有类似 *make default_target * 的选项,撤销它,然后你在r目录中得到一个.a文件。访问https://cmake.org/cmake/help/v3.0/command/add_library.html将帮助你!
ffvjumwh4#
它解决了我的问题。我希望建立一个CLion项目,使用C++ 23客户端和静态库。我很感谢你的帖子,因为在我读了它之后,我在几分钟内就完成了我的工作。出于某种原因,我发现CMake是反直觉的,尽管有很多参考资料,我仍然缺乏关于如何做简单的事情的直接指导,这些事情在“make”中很容易。以下是我最终得到的结果: