写一个cmake脚本,编译生成一个C的可执行程序,需要连接一个外部的动态库文件
时间: 2024-09-23 15:07:15 浏览: 44
CMake中文手册
在CMake中,编写一个脚本来编译C程序并链接外部动态库通常涉及设置目标、添加源文件、指定编译器、链接库等步骤。以下是一个基本的示例,假设我们的项目名为`MyProject`,源文件为`main.c`,外部库为`external_lib.so`:
```cmake
# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# 添加源文件
add_executable(MyProgram main.c)
# 指定外部动态库的位置
find_library(EXTERNAL_LIB external_lib.so PATHS /path/to/library)
# 如果找到库,将它链接到可执行文件
if (EXTERNAL_LIB)
target_link_libraries(MyProgram ${EXTERNAL_LIB})
else()
message(FATAL_ERROR "Could not find the external library.")
endif()
# 可选:配置生成目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# 构建选项
option(BUILD_DEBUG "Build in debug mode" OFF)
if (BUILD_DEBUG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
endif()
# 打包配置
install(TARGETS MyProgram RUNTIME DESTINATION bin)
```
在这个例子中,你需要替换`/path/to/library`为你实际的动态库路径。执行`cmake .`初始化项目结构,然后`make`或`cmake --build .`来编译。
阅读全文