当前位置: 首页 > wzjs >正文

阿里云服务器ecs网站seo方案策划书

阿里云服务器ecs,网站seo方案策划书,怎么做兼职类网站吗,东营网站建设运营公司🦄个人主页:修修修也 🎏所属专栏:Linux ⚙️操作环境:Xshell (操作系统:Ubuntu 22.04 server 64bit) 目录 快速上手Makefile 基本结构 变量 自动变量 常用目标 快速上手CMake CMake与Makefile的关系 CMake的使用步骤 常用命令 (1) 基本配置 (2) 变量与选…

🦄个人主页:修修修也

🎏所属专栏:Linux

⚙️操作环境:Xshell (操作系统:Ubuntu 22.04 server 64bit)


目录

快速上手Makefile

基本结构

变量

自动变量

常用目标

快速上手CMake

CMake与Makefile的关系

CMake的使用步骤

常用命令

(1) 基本配置

(2) 变量与选项

(3) 查找依赖

高级功能

(1) 多目录项目

(2) 安装与打包

(3) 测试支持

常用工具

结语


快速上手Makefile

        Makefile 是一种用于自动化编译和构建程序的工具,尤其在 C/C++ 项目中广泛使用。它通过定义规则(rules)来指定如何从源代码生成目标文件可执行文件


基本结构

        Makefile的核心格式为:

目标(target):依赖(dependencies)命令(command)
  • 目标(target): 通常是生成的文件名(如main.o或main)。
  • 依赖(dependencies): 生成目标所需的文件(如main.c或main.o文件)。
  • 命令(command): 生成目标的Shell命令(以Tab开头)。

        在目录中创建makefile文件,示例如下:

hello:hello.cgcc hello.c -o hello

        此时我们目录中有.c文件hello.c:

        此时我们可以直接输入make命令,使.c文件自动编译,效果如下:

        如果有还不太了解gcc/g++编译器编译命令的可以先移步:【Linux】手把手教你从零上手gcc/g++编译器


变量

        变量可以简化重复内容(如编译器, 编译选项), 如:

CC = gcc
CFLAGS = -Wallhello:hello.c$(CC) $(CFLAGS) hello.c -o hello

        运行展示如下:


自动变量

  • $@当前目标名(如 app)。

  • $^所有依赖(如 main.c utils.c)。

  • $<第一个依赖(如 main.c)。

        示例如下:

hello:hello.cgcc $^ -o $@

        运行结果如下:


常用目标

  • all: 默认目标,通常编译所有内容
  • clean: 清理生成的文件
  • .PHONY: 声明伪目标(不生成文件)

        假设现在有两个程序一个服务器程序一个客户端程序需要一起编译生成并需要及时清理,那么makefile文件的编写参考:

.PHONY:all
all:server clientserver:Server.ccg++ -o $@ $^ -std=c++11
client:Client.ccg++ -o $@ $^ -lpthread -std=c++11.PHONY:clean
clean:rm -f server client

        更多Makefile相关内容可以查阅官方手册:GNU Make 官方文档


快速上手CMake

        CMake 是一个跨平台的自动化构建工具,用于管理代码的编译、链接和安装流程。它通过生成标准的构建文件(如 Makefile、Visual Studio 项目、Ninja 文件等),简化了跨平台项目的构建过程。

CMake与Makefile的关系

  • Makefile:需要手动编写规则,直接调用编译器。

  • CMake:通过高级的配置文件 CMakeLists.txt 生成 Makefile(或其他构建系统文件),无需手动处理底层编译细节。

  • 优势

    • 跨平台(Windows、Linux、macOS 等)。

    • 支持复杂的项目结构(多目录、多库)。

    • 自动管理依赖关系(如头文件、第三方库)。

CMake的使用步骤

1.编写CMakeLists.txt文件

        每个项目目录都需要一个 CMakeLists.txt,定义构建规则。

        示例如下:

cmake_minimum_required(VERSION 3.15)  //最低CMake版本(不能比当前机器CMake版本高)
project(test)                         //项目名称
add_executable(hello hello.c)         //生成可执行文件(参数是其依赖关系)

2.执行cmake命令生成makefile文件:

3.执行make命令生成可执行程序:

        可以看到,我们直接执行cmake命令会生成大量的与程序本身无关的杂乱文件,这会干扰我们操作,所以我们可以通过以下步骤生成一下构建系统避免污染源代码:

1.创建构建目录(推荐 build 目录,避免污染源码):

mkdir build && cd build

2.运行cmake生成构建文件:

camke .. // 根据上级目录的 CMakeLists.txt 生成 Makefile

3.调用构建工具(如make或ninja)编译:

make #执行生成的Makefile

        运行效果如下:


常用命令

(1) 基本配置
  • project(<PROJECT_NAME>): 定义项目名称和支持的语言(如 CXX 表示 C++)。

  • add_executable(<target> <source_files>): 生成可执行文件。

  • add_library(<target> <source_files>): 生成静态库(.a/.lib)或动态库(.so/.dll)。

  • target_link_libraries(<target> <libraries>): 链接库到目标(可执行文件或库)。

(2) 变量与选项
  • 定义变量:

    set(SRC_FILES main.cpp utils.cpp)
    add_executable(my_app ${SRC_FILES})
  • 条件判断:

    if(WIN32)# Windows 平台特定配置
    endif()
(3) 查找依赖
  • 查找系统已安装的库:

    find_package(OpenCV REQUIRED)
    target_link_libraries(my_app ${OpenCV_LIBS})
  • 自定义库路径:

    set(OPENCV_DIR "/path/to/opencv")
    find_package(OpenCV REQUIRED PATHS ${OPENCV_DIR})

高级功能

(1) 多目录项目
  • 主目录的 CMakeLists.txt

    add_subdirectory(src)    # 进入子目录 src
    add_subdirectory(libs)   # 进入子目录 libs
  • 子目录的 CMakeLists.txt 定义各自的构建规则。

(2) 安装与打包
  • 定义安装规则:

    install(TARGETS my_app DESTINATION bin)  # 安装可执行文件到 bin 目录
    install(FILES include/utils.h DESTINATION include) # 安装头文件
  • 生成安装包:

    include(InstallRequiredSystemLibraries)
    set(CPACK_PACKAGE_NAME "MyApp")
    include(CPack)
(3) 测试支持
  • 启用测试:

    enable_testing()
    add_test(NAME my_test COMMAND my_app --test)

常用工具

  • ccmake:命令行交互界面,调整 CMake 变量。

  • cmake-gui:图形化界面,配置项目选项。

  • CTest:运行测试套件。

  • CPack:生成安装包(如 .deb.zip)。


结语

希望这篇关于 快速上手Makefile & CMake 的博客能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步!

相关文章推荐

【Linux】手把手教你从零上手Vim编辑器

【Linux】手把手教你从零上手gcc/g++编译器

【Linux】实现一个简易的shell命令行

【Linux】基本指令(下)

【Linux】基本指令(中)

【Linux】基本指令(上)


http://www.dtcms.com/wzjs/522703.html

相关文章:

  • 浙江网站建设品牌网站前期推广
  • 企业申请完域名以后 怎么把网站运行起来网站优化推广方法
  • 手表网站大全360网站关键词排名优化
  • 网站建设公司每年可以做多少个网站打造龙头建设示范
  • 做网站留后门是怎么回事西安百度seo代理
  • 青岛城阳 软件网站开发whois查询 站长工具
  • 供应链网站制作青岛专业网站制作
  • 丽水专业网站建设哪家好国际最新十大新闻事件
  • wordpress柚子皮网站seo内容优化
  • 网站建设与管理学习什么网络竞价托管公司
  • 外贸网站建设 蚂蚁 深圳产品软文是什么
  • 柯桥做网站东莞网站seo优化
  • 江苏省建设厅网站培训网2022年最火的电商平台
  • 优秀个人网站宁波seo免费优化软件
  • 有什么专业做蛋糕的网站吗下载优化大师安装桌面
  • 网站的模板演示怎么做苏州首页排名关键词优化
  • 不同类型的购物网站网站排名分析
  • 诸暨市住房建设局网站活动软文怎么写
  • wordpress后台500错误蔡甸seo排名公司
  • 携创网深圳seo优化seo优化
  • 哪里有培训网页设计seocui cn
  • 有什么网站可以做微信app深圳经济最新新闻
  • 如何宣传商务网站网络销售平台排名
  • 网站连接如何做二维码快速推广
  • 做网站最主要是什么企业seo顾问服务
  • 网站必须要备案吗地推项目平台
  • 网站自适应怎么做名片seo什么意思
  • 网站建设公司企业模板免费b站软件推广网站
  • 那些网站可以做兼职优化大师的使用方法
  • 唐山建设网站的网站湘潭高新区最新新闻