写一个CMakeLists文件
时间: 2024-01-24 19:02:13 浏览: 21
Sure, here is an example CMakeLists.txt file:
```
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# Set C++ standard to C++11
set(CMAKE_CXX_STANDARD 11)
# Add source files
set(SRCS
main.cpp
my-class.cpp
my-function.cpp
)
# Add header files
set(HDRS
my-class.h
my-function.h
)
# Create executable
add_executable(my-program ${SRCS} ${HDRS})
```
This CMakeLists file sets the project name to "MyProject", sets the C++ standard to C++11, adds source and header files, and creates an executable called "my-program".
相关问题
写一个cmakelists
好的,以下是一个简单的 CMakeLists.txt 文件:
```cmake
cmake_minimum_required(VERSION 3.5)
project(MyProject)
# 添加可执行文件
add_executable(my_exe main.cpp)
# 添加头文件搜索路径
include_directories(include)
# 添加链接库
target_link_libraries(my_exe my_lib)
```
这个文件假定你的项目目录结构如下:
```
MyProject/
├── CMakeLists.txt
├── include/
│ └── my_header.h
├── src/
│ └── main.cpp
└── lib/
└── my_lib.a
```
其中,`main.cpp` 是你的源代码文件,`my_header.h` 是你的头文件,`my_lib.a` 是你的库文件。`include` 目录是头文件搜索路径,`lib` 目录是库文件搜索路径。在这个例子中,CMake 会生成一个名为 `my_exe` 的可执行文件,并且链接 `my_lib` 库文件。
写一个多个文件c库CMakeLists
好的,下面是一个简单的多文件 C 库的 CMakeLists.txt 文件。
```cmake
# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)
# 设置编译器为 GCC
set(CMAKE_C_COMPILER gcc)
# 设置项目名称和版本号
project(mylib VERSION 1.0.0)
# 添加头文件目录
include_directories(include)
# 添加源文件
set(SOURCES src/foo.c src/bar.c)
# 生成共享库
add_library(${PROJECT_NAME} SHARED ${SOURCES})
# 设置共享库的版本号
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
# 设置共享库的输出名称
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME mylib)
# 安装共享库和头文件
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
install(DIRECTORY include/ DESTINATION include)
```
上面的 CMakeLists.txt 文件将会编译出一个名为 `mylib` 的共享库,包含 `src/foo.c` 和 `src/bar.c` 两个源文件,并将头文件安装到 `include/` 目录下,共享库安装到 `lib/` 目录下。
当你需要使用这个库时,你可以使用以下代码进行编译和链接:
```cmake
# CMakeLists.txt
# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)
# 设置项目名称和版本号
project(myapp VERSION 1.0.0)
# 添加可执行文件
add_executable(myapp main.c)
# 添加链接库
target_link_libraries(myapp mylib)
```
上面的 CMakeLists.txt 文件将会编译出一个名为 `myapp` 的可执行文件,使用 `mylib` 的共享库。