写一个cmake的文件,有添加文件,库和编译生成,加gcc编译的函数
时间: 2024-09-24 09:19:09 浏览: 40
[cmake]添加依赖库的两种方式:从源码编译和使用已编译好的库 - 玄冬Wong - ITeye技术网站1
在CMake中编写一个基本的配置文件(CMakeLists.txt),首先需要设置项目的源文件目录,添加目标依赖,并指定使用GCC编译器。下面是一个简单的例子:
```cmake
# 首先,指定CMakeLists.txt的位置作为CMake项目的根目录
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# 定义源码目录和库目录
set(SOURCE_DIR src)
set(LIBRARY_DIR lib)
# 添加源文件到项目中
add_library(MyLibrary
# 这里假设src目录下有个my_function.cpp文件
${SOURCE_DIR}/my_function.cpp
)
# 如果有其他库,比如自定义库,可以这样添加
# include_directories(path_to_your_library) # 如果库头文件不在默认路径
# add_library(MyLibraryDependent STATIC OR SHARED your_library_name)
# 指定链接GCC
set(CMAKE_CXX_COMPILER "g++") # 或者"C:/Program Files/GCC/gcc${CMAKE_MSVC_VERSION}/bin/g++.exe" (对于Windows GCC安装)
# 定义生成目标
add_executable(MyApp main.cpp)
target_link_libraries(MyApp MyLibrary)
# 配置生成位置
set(CMAKE_INSTALL_PREFIX /usr/local) # 安装位置
# 最后告诉CMake生成Makefile或者其他构建系统相关的文件
# 这里以Unix Makefile为例
if(NOT MSVC)
enable_language(CXX)
add_custom_target(check CODE "echo Checking...")
endif()
# 清理和安装步骤
install(TARGETS MyApp DESTINATION bin)
install(DIRECTORY ${LIBRARY_DIR} DESTINATION lib)
# 如果你想清理所有生成的中间文件和产物,可以添加
# add_clean_command(Clear ...)
# 以及 install规则前的 configure_file(CopyIfNewer ...)
```
这个例子创建了一个名为"MyProject"的项目,包含一个静态库"MyLibrary"和一个可执行程序"MyApp",所有编译后的文件会被安装到指定位置。
阅读全文