家政服务公司网站建设方案策划书促销式软文案例
家政服务公司网站建设方案策划书,促销式软文案例,南京的电商网站设计,wordpress app文章目录 一、CMake 简介 二、CMake 基本语法 1、变量相关指令 2、可执行程序相关指令 3、静态库和动态库相关指令 4、文件查找及搜索相关指令 5、控制相关指令 6、安装指令 7、set_target_properties 的用法 7.1、设置可执行文件输出路径和库输出路径 7.2、设置动态库版本 三、…文章目录一、CMake 简介二、CMake 基本语法1、变量相关指令2、可执行程序相关指令3、静态库和动态库相关指令4、文件查找及搜索相关指令5、控制相关指令6、安装指令7、set_target_properties 的用法7.1、设置可执行文件输出路径和库输出路径7.2、设置动态库版本三、CMake 在 Clion 中的配置1、Ubuntu 下 Clion 的安装2、如何在 clion 运行多个 cpp 文件 ?四、参考资料一、CMake 简介TODO:可参考夏曹俊CMake 课程加强CMake是一个开源的跨平台构建系统,支持多层目录、多个可执行程序与多个库(动态库或静态库)的生成CMakeLists.txt:使用简洁的语法定义构建的流程Makefile:执行构建后生产的编译文件(定义了先编译什么,后编译什么)ubuntu 下安装:sudo apt install cmake cmake-qt-gui使用cmake一般流程为:生成构建系统(buildsystem,比如 make 工具对应的 Makefile)执行构建(如 make),生成目标文件执行测试、安装或打包升级 cmake 版本# 1、先卸载原来的 cmakeapt-getremove cmake cmake-gui# 2、安装 wgetsudoapt-getupdatesudoapt-getinstallwgetbuild-essential libssl-dev# 3、下载并解压 cmake 源码(注意不是预编译包)wgethttps://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2.tar.gztar-zxfcmake-3.24.2.tar.gz# 4、配置,编译和安装 cmakecdcmake-3.24.2 ./configure--prefix=/opt/cmakemake-j8sudomakeinstall# 5、配置环境变量(重新初始化 Bash)exportPATH=/opt/cmake/bin:$PATHsource~/.bashrc# 6、查看最新的 cmake 版本cmake--version# 7、开启 CUDA 语言支持# enable_language(CUDA) # 如果 CMake 版本 3.8,使用此命令开始 CUDA 支持project(${PRJ_TARGET}LANGUAGES CXX CUDA)# 项目名称, 添加 CXX/CUDA 语言识别(CMake ≥ 3.8)# 8、多版本共存方案# 8.1、下载预编译包(如3.23.0)wgethttps://cmake.org/files/v3.23/cmake-3.23.0-linux-x86_64.tar.gztar-zxvfcmake-3.23.0-linux-x86_64.tar.gzsudomvcmake-3.23.0-linux-x86_64 /opt/cmake-3.23.0# 8.2、配置环境变量echo'export PATH=/opt/cmake-3.23.0/bin:$PATH'~/.bashrcsource~/.bashrc# 版本验证cmake--version# 系统版本/opt/cmake-3.23.0/bin/cmake--version# 新版本生成构建系统:通过cmake命令生成构建系统,常用参数如下:eg:指明使用当前目录作为源文件目录,其中包含CMakeLists.txt文件;使用cmake-build-debug目录作为构建目录;设定变量CMAKE_BUILD_TYPE的值为Debugcmake -S . -B cmake-build-debug -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug,-G指定构建工具,一般默认为Unix Makefiles,会在构建目录下生成Makefile(其中会将-S的值赋给CMAKE_SOURCE_DIR,-B的值赋给CMAKE_BINARY_DIR)执行构建:cmake --build cmake-build-debug --target demo -j16,--build为生成构建系统时指定的构建目录;--target指定构建目标(demo)代替默认的构建目标,可以指定多个或所有(all);-j指定构建目标时使用的线程数;实际上此过程执行了编译和链接两步====================[Build|all|Debug]=====================================/home/manzp/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/221.5591.52/bin/cmake/linux/bin/cmake--build/home/manzp/projects/17.tools/board/neon_test/cmake-build-debug--targetall-j16[50%]Building C object CMakeFiles/neon_test.dir/main.c.o[100%]Linking C executable neon_test[100%]Built target neon_test执行测试:./cmake-build-debug/demo,生成的可执行文件在构建系统时指定的构建目录Demo 示例如下:# 设置 cmake 最低版本cmake_minimum_required(VERSION3.15)# 设置支持相对路径(这样工程位置发生改变的时候,可以不用修改配置文件)cmake_policy(SET CMP0015 NEW)# 设置项目名称project(TestCMake)# 设置编译选项,O0 默认不优化,用于 debugset(CMAKE_CXX_STANDARD11)set(CMAKE_C_FLAGS"-O0")set(CMAKE_CXX_FLAGS"-O0")# 声明头文件路径set(INC_DIR./include./include/libyuv)# 声明链接库搜索目录set(LINK_DIR./lib./sdk/lib)# 引入头文件:相当于 g++ 选项中的 -I 参数的作用,也相当于环境变量中增加路径到 CPLUS_INCLUDE_PATH 变量的作用include_directories(${INC_DIR})# 引入库文件:相当于 g++ 命令的 -L 选项的作用,也相当于环境变量中增加 LD_LIBRARY_PATH 路径的作用link_directories(${LINK_DIR})# 设置生成可执行文件aux_source_directory(source SRC_CPP)add_executable(TestCMake cluster.c ${SRC_CPP})# 加入生成可执行程序所有依赖的源文件# 将第三方库链接在一起target_link_libraries(TestCMake lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)# 批量生成可执行文件,每次新增确保之前的 demo 可正常运行SET(DEMO_PATH../demo)# 相对 build 的目录file(GLOB SOURCE_FILES./*.cpp)# 获取当前目录下所有 .cpp 文件,并将它们存储在 SOURCE_FILES 变量中foreach(A_CPP_FILE ${SOURCE_FILES})# 遍历 SOURCE_FILES 中的每个文件# 提取每个 .cpp 文件的文件名(不包括路径和扩展名),并将结果存储在 EXECUTABLE_NAME 变量中# NAME_WE 是 get_filename_component 的参数,表示只获取文件名和扩展名去掉后的部分get_filename_component(EXECUTABLE_NAME ${A_CPP_FILE}NAME_WE)# 根据 EXECUTABLE_NAME (即源文件的文件名)创建一个新的可执行文件,并将当前的 .cpp 文件(${A_CPP_FILE})作为其源文件add_executable(${EXECUTABLE_NAME}${A_CPP_FILE})# 为新创建的可执行文件链接了多个库target_link_libraries(${EXECUTABLE_NAME}alg kida base sys nn VIPlite VIPuser opencv_world)# 设置新创建的可执行文件的运行时输出目录为 ${DEMO_PATH}set_target_properties(${EXECUTABLE_NAME}PROPERTIES RUNTIME_OUTPUT_DIRECTORY"${DEMO_PATH}")endforeach(A_CPP_FILE ${SOURCE_FILES})# 结束 foreach 循环,表示遍历所有源文件的过程结束在build中编译执行过程如下:mkdirbuild# 外部编译cdbuild# CMAKE_INSTALL_PREFIX 默认为 /usr/localcmake-j16..# 注意此时 CMakelists.txt 要在 ../ 目录下,自动生成 Makefilemake-j16