这里写目录标题
由于【cmake实战二】写的比较详细,所以后续涉及到的相关知识会简略
一、目标
1、把构建过程的中间文件放到build目录下
2、把代码放入代码目录src
3、安装
二、准备代码和cmakelist
目录如下
1.doc
- 存放产品文档:本文,里面只有一个ReadMe.txt
2.src
- 存放产品代码:main.cpp和CmakeLists.txt
- main.cpp
#include<iostream>
using namespace std;
int main()
{
cout<<"hello world"<<endl;
return 0;
}
- CmakeLists.txt
ADD_EXECUTABLE(hello main.cpp)
SET(EXECUTABLE_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/lib")
SET(LIBRARY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/lib")
3.CmakeLists.txt
cmake_minimum_required(VERSION 3.24)
PROJECT(HELLO)
ADD_SUBDIRECTORY(src)
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/doc DESTINATION "${PROJECT_SOURCE_DIR}/bin")
INSTALL(FILES ${PROJECT_SOURCE_DIR}/start.bat DESTINATION "${PROJECT_SOURCE_DIR}/bin")
INSTALL(FILES ${PROJECT_SOURCE_DIR}/lib/Debug/hello.exe DESTINATION "${PROJECT_SOURCE_DIR}/bin")
#INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/doc DESTINATION "${PROJECT_SOURCE_DIR}/bin" CONFIGURATIONS Debug)
4.start.bat
.\hello.exe
三、构建、编译、安装
1、构建
新建一个build文件夹存放编译的中间文件
cd build
cmake …
2、编译(同linux下的(cmake -DCMAKE_BUILD_TYPE=Debug)
devenv.com .\HELLO.sln /Build “Debug|x64”
3、安装(同linux下的make install)
devenv.com .\HELLO.sln /Build “Debug|x64” /Project “INSTALL”
4、整个目录如下
四、cmake命令讲解
1、ADD_SUBDIRECTORY
- 用于向当前工程添加存放源文件的子目录
- ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
- 一般用法,如本文例子,把src加入工程
ADD_SUBDIRECTORY(src)
2、EXECUTABLE_OUTPUT_PATH
- 定义了: 可执行二进制的输出路径
SET(EXECUTABLE_OUTPUT_PATH “${PROJECT_SOURCE_DIR}/lib”)
- 一般用法,如本文例子,把可执行二进制程序hello.exe放入工程下的lib
3、LIBRARY_OUTPUT_PATH
- 定义了: 库的输出路径
SET(EXECUTABLE_OUTPUT_PATH “${PROJECT_SOURCE_DIR}/lib”)
- 一般用法,如本文例子,把库的输出路径设置为工程下的lib。(后面讲)
4、INSTALL
- 安装目录
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/doc DESTINATION "${PROJECT_SOURCE_DIR}/bin")
- 安装文件
INSTALL(FILES ${PROJECT_SOURCE_DIR}/start.bat DESTINATION "${PROJECT_SOURCE_DIR}/bin")
- 指定安装的编译方式(Debug\release\Relwithdebinfo)
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/doc DESTINATION "${PROJECT_SOURCE_DIR}/bin" CONFIGURATIONS Debug)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。