写一个cmakelist
时间: 2024-11-09 12:31:45 浏览: 47
当然,以下是一个简单的CMakeLists.txt示例,用于创建一个基本的Hello World程序,并配置了编译和运行步骤:
```cmake
# 首先设定项目的名称
project(MyProject)
# 设置C/C++标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
# 定义源代码目录和头文件目录
set(SRC_DIR src)
set(HEADER_DIR include)
# 创建目标文件名
set(PROJECT_EXE my_project)
# 假设有一个main.cpp源文件和my_project.h头文件
add_executable(${PROJECT_EXE} ${SRC_DIR}/main.cpp ${HEADER_DIR}/my_project.h)
# 如果有其他静态库或动态库依赖,可以添加如下行
# find_package(Boost REQUIRED) # 查找Boost库
# target_link_libraries(${PROJECT_EXE} Boost::boost) # 链接到找到的Boost库
# 设置编译器 flags
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "GNU")
message(FATAL_ERROR "This project requires GCC or Clang compiler.")
endif()
set(CMAKE_CXX_FLAGS "-Wall -Wextra")
# 定义清理规则
add_custom_command(
OUTPUT ${PROJECT_EXE}
COMMAND ${CMAKE_COMMAND} --build . --target clean
COMMENT "Cleaning up"
VERBATIM)
# 最后,指定主目标
add_custom_target(run ALL
COMMAND ${PROJECT_EXE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Running the program"
VERBATIM)
# 确保run目标依赖于编译后的程序
add_dependencies(run ${PROJECT_EXE})
# 提供一个命令行帮助
message("To build and run your application:")
message(" $> cmake .")
message(" $> make")
message(" $> make run")
```
这个CMakeLists.txt文件定义了一个名为"MyProject"的可执行程序,它从src目录查找main.cpp源文件,以及从include目录查找my_project.h头文件。它还设置了编译器要求,并定义了清理和运行程序的步骤。
阅读全文