Linux上CMAKE的使用
简单使用
格式如下:
cmake_minimum_required(VERSION 3.0) # 最低版本3.0
project(main) # 项目名称
# 配置编译器
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)
# 配置头文件搜索路径
# include_directories()
# 配置库文件搜索路径
# link_directories()
# 设置需要编译的源文件列表
set(SRC_LIST main.cpp)
# 把.指定路径下的所有源文件名字放入变量名SRC_LIST里面
# aux_source_directory(. SRC_LIST)
# 表示生成可执行文件server ,由SRC_LIST变量所定义的源文件编译而来
add_executable(server ${SRC_LIST})
# 表示server这个目标文件,需要链接muduo_net muduo_base pthread这三个库文件
target_link_libraries(server muduo_net muduo_base pthread)
# 先执行cmake . 在执行make
编写完后在终端中先执行cmake .
命令
ls
查看出现了哪些新文件
ChatClient.h ChatServer.h CMakeCache.txt CMakeFiles cmake_install.cmake CMakeLists.txt m main.cpp Makefile
继续执行make
命令
这个时候server执行文件就编译完成了,可以使用。
进一步规范化目录结构
上面的一系列文件全部都在一个文件夹里面,太杂乱了,我们建立多个目录来规范
文件目录作用
bin目录:存放可执行文件,这些文件可以直接运行,例如 ls、cd、mkdir 等命令。
lib目录:存放库文件,这些文件包含了程序运行所需的一些函数和代码,程序在运行时可以调用这些库文件。
include目录:存放头文件,头文件包含了程序开发所需的一些宏定义、数据结构和函数声明等信息,程序在开发时可以包含这些头文件。
src目录:存放源代码文件,这些文件包含了程序的源代码,程序员可以编辑这些文件来修改程序的功能。
build目录:存放编译生成的文件,例如目标文件、可执行文件等,这些文件是编译过程中的中间产物,通常不需要手动修改。
example目录:存放示例代码,通常用于演示如何使用某个软件包或库。
thirdparty目录:存放第三方库文件,这些库文件不是由系统或软件包提供的,而是由第三方开发人员提供的。
具体步骤
先创建一个build目录,进入该目录中,执行cmake ..
命令后,编译文件后存放在build目录中了
再创建一个bin目录,负责存放可执行文件,同时在cmake文件中添加这行命令
# 设置可执行文件的存放目录
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
重新执行一遍cmake .. 和make
此刻bin目录下已经有可执行文件
主目录下的CMAKE
查看当前我们的文件目录,我们也可以在主目录中编写CMAKE
主目录cmake
cmake_minimum_required(VERSION 3.0)
project(main)
#配置编译选项
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)
#指定搜索的子目录
add_subdirectory(muduo_test)
# 设置可执行文件的存放目录
# set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
子目录cmake
# 配置头文件搜索路径
# include_directories()
# 配置库文件搜索路径
# link_directories()
# 设置需要编译的源文件列表
set(SRC_LIST ./main.cpp)
# 设置可执行文件的存放目录
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 把.指定路径下的所有源文件名字放入变量名SRC_LIST里面
# aux_source_directory(. SRC_LIST)
# 表示生成可执行文件server ,由SRC_LIST变量所定义的源文件编译而来
add_executable(server ${SRC_LIST})
# 表示server这个目标文件,需要链接muduo_net muduo_base pthread这三个库文件
target_link_libraries(server muduo_net muduo_base pthread)
此时我们的目录结构如下,我们右键选择生成所有项目,即可达到和之前一样的效果
生成成功后,主目录下bin目录下已经有了可执行文件
标签:可执行文件,文件,cmake,SRC,Linux,LIST,使用,CMAKE,目录 From: https://www.cnblogs.com/AndreaDO/p/18113916