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

网站针对爬虫爬取做的优化网站宣传费用

网站针对爬虫爬取做的优化,网站宣传费用,网页设计思路怎么写,wordpress img相对路径项目集成过程中的makefile记录 文章目录 项目集成过程中的makefile记录1.基础概念注释打印赋值方式常用变量$ 伪目标函数wildcard 多目录、文件操作 2.思路梳理**需求分析**目录结构 3.可行示例 持续更新中1.基础概念 注释 # 示例: # 项目名称打印 echo "H…

项目集成过程中的makefile记录

文章目录

  • 项目集成过程中的makefile记录
    • 1.基础概念
      • 注释
      • 打印
      • 赋值方式
      • 常用变量
        • @
        • $
      • 伪目标
      • 函数
        • wildcard
      • 多目录、文件操作
    • 2.思路梳理
      • **需求分析**
      • 目录结构
    • 3.可行示例

持续更新中

1.基础概念

注释

#

示例:

# 项目名称

打印

 @echo "Hello, world!			#仅打印信息echo "Hello, world!			#打印命令和信息

赋值方式

=

使用 = 进行赋值时,变量的值是延迟展开的,即在使用变量时才进行展开计算。这意味着变量的值可以依赖于其他变量,也可能受后续赋值操作的影响。例如:SOURCES = $(wildcard src/*.c)
OBJS = $(SOURCES:.c=.o)

:=

:= 是 Makefile 中用于静态变量赋值的一种方式,它具有立即展开和避免递归展开的特点,适合用于定义不依赖于其他变量的静态值。

?=

使用 ?= 进行赋值时,如果变量之前未被赋过值(即为空),则进行赋值;如果变量已经有值,则不重新赋值。这种方式通常用于设置默认值,让用户可以在命令行或其他地方覆盖默认值。例如:CC ?= gcc

+=

使用 += 可以向变量追加新的值,而不是覆盖原有的值。这在需要动态追加值的情况下非常有用。例如:CFLAGS += -Wall -O2

常用变量

@

作用:

@ 符号通常用于控制命令的输出

示例和讲解:

print_message:@echo "Hello, world!
执行 make print_message 将只输出 Hello, world!,而不会额外显示命令本身。如果不带 @ 符号,Make 工具将会输出命令本身以及命令执行结果。print_message:echo "Hello, world!"
执行 make print_message 将输出 echo "Hello, world!" 以及 Hello, world!。总之,@ 符号可以控制命令的输出,让你可以选择是显示命令本身还是只显示命令执行结果。
$
1.变量引用:$ 后面跟着变量名可以引用该变量的值。
例如:$(CC)、$(CFLAGS)
例如:$(CC) -o output $(OBJS) 将会使用 CC 和 OBJS 的值来构建编译命令。
2.命令替换:$() 或 ${} 用于执行命令替换,将命令的输出结果赋给变量。例如:$(shell date '+%Y-%m-%d') 将会获取当前日期并赋给变量。
3.特殊内建变量:$@ 表示规则中的目标文件名。
$^ 表示所有的依赖文件列表。
$< 表示规则中的第一个依赖文件名。
例如:$(CC) -o $@ $^ 表示将所有的依赖文件编译链接生成目标文件。

伪目标

网上的一些介绍,可以增加理解:避免与同名文件冲突:有时候,当前目录中可能会存在与 Makefile 中定义的目标同名的文件,如果这些目标不是伪目标,那么 Make 命令会误以为这是一个文件依赖关系,从而导致错误。通过使用伪目标,可以避免这种冲突。明确指示任务:通过使用伪目标,你可以在 Makefile 中明确地定义一些任务,比如默认编译任务、清理任务等,使得其他人阅读代码时更容易理解 Makefile 的意图。确保每次执行:由于伪目标并不对应真实文件,因此无论是否存在同名文件,Make 命令都会执行伪目标定义的任务,这样可以确保每次执行都能按照预期执行相应的命令。但记住下面这个就可以了:
当执行 make 命令时,Make 工具会按照规则执行 all 或 clean 相应的命令,而不会考虑是否存在同名文件

示例:

# 默认目标
all: $(TARGET)# 清理规则
clean:rm -rf $(BUILD_DIR) $(BIN_DIR).PHONY: all clean

函数

wildcard

原型:

$(wildcard pattern)pattern 是一个文件名模式,可以包含通配符 * 和 ?。wildcard 函数会将满足模式的文件列表返回给调用者。

作用:

用于匹配文件名模式并返回匹配的文件列表

示例:

假设当前目录下有以下文件:
src/main.c
src/util.c
include/header.h
我们可以使用 wildcard 函数来匹配以 .c 结尾的所有源文件:
SRC_FILES := $(wildcard src/*.c)
这将返回 src/main.c 和 src/util.c,并将其赋给 SRC_FILES 变量。wildcard 函数在 Makefile 中常用于收集源文件列表、头文件列表等,以便在后续的编译或构建过程中使用。

多目录、文件操作

不同makefile文件相互调用

# 主Makefile文件sub_mk := ./src//ctrl/sub_ctrl.mk# 默认目标
all: @echo "building ..."@$(MAKE) -f $(sub_mk)
# 子Makefile文件.PHONY: SUB_CTRLSUB_CTRL:@echo "SUB_CTRL makefile test !!"

现象:

building ...
make[1]: 进入目录“/home/psd/code_space/my_project_space/user_space/test/camera_usb/test”
SUB_CTRL makefile test !!
make[1]: 离开目录“/home/psd/code_space/my_project_space/user_space/test/camera_usb/test”

2.思路梳理

需求分析

项目初期: 建立测试目录进行模块化的基础功能使能那对于makefile的需求:1.对涉及到的.c源文件进行编译;2.将编译生成的中间文件以及目标文件存放到相应的目录里面3.顶层目录下执行make即可实现整个项目的编译作用4.make clean 可以清除中间文件和已生成的目标文件其他拓展需求:1.

目录结构

后续测试模块内容写完直接使用tree命令补充:# 源文件目录
SRC_DIR := src# 头文件目录
INC_DIR := include# 目标文件目录
BUILD_DIR := build# 可执行文件输出目录
BIN_DIR := bin# 源文件
SRCS := $(wildcard $(SRC_DIR)/**/*.c)# 目标文件
OBJS := $(SRCS:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)# 可执行文件
TARGET := $(BIN_DIR)/$(PROJECT_NAME)

3.可行示例

# 项目名称
PROJECT_NAME := USB_CAMERA# 编译器
CC := gcc# 编译选项
CFLAGS := -Wall -Wextra -g# 源文件目录
SRC_DIR := src# 头文件目录
INC_DIR := include# 目标文件目录
BUILD_DIR := build# 可执行文件输出目录
BIN_DIR := bin# 源文件
SRCS := $(wildcard $(SRC_DIR)/**/*.c)# 目标文件
OBJS := $(SRCS:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)# 可执行文件
TARGET := $(BIN_DIR)/$(PROJECT_NAME)# 默认目标
all: $(TARGET)# 编译目标
$(TARGET): $(OBJS) | $(BIN_DIR)$(CC) $(CFLAGS) $^ -o $@# 编译规则
# 生成目标文件的规则
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
#创建目录(如果不存在)@mkdir -p $(dir $@)$(CC) $(CFLAGS) -c $< -o $@# 创建目录
$(BUILD_DIR):mkdir -p $@$(BIN_DIR):mkdir -p $@# 清理规则
clean:rm -rf $(BUILD_DIR) $(BIN_DIR).PHONY: all clean
http://www.dinnco.com/news/81499.html

相关文章:

  • 绵阳专门做网站的公司有哪些指数基金定投怎么买
  • 网页开发公司网站抖音seo招商
  • 中企动力网站好么手机百度账号登录入口
  • 不想花钱做网站推广郑州网络seo公司
  • 网站的维护百度推广代理怎么加盟
  • apache 配置wordpressseo页面优化技术
  • 动漫设计工作室网站建设公司站长统计在线观看
  • 做网站顺序it培训四个月骗局
  • 宝鸡精品网站开发正规seo排名多少钱
  • 外贸网站建设流程图在线网页制作网站
  • 传奇私服网站搭建教程百度站长工具怎么用
  • 沈阳有名的设计公司有哪些济宁seo公司
  • 南皮做网站网站关键词优化软件效果
  • 邢台装修网站建设seo顾问咨询
  • 企业网站建设方案 功能规划从事网络销售都有哪些平台呢
  • 网罗天下做网站靠谱吗抖音搜索引擎推广
  • 如何禁止某ip访问网站黄页引流推广网站软件免费
  • wordpress建站案例视频教程关键字查找
  • 大连网站制作网页小说网站排名前十
  • 查企业下载什么软件seo关键词优化公司哪家好
  • 做网站 接单赣州seo
  • 满洲里网站建设如何搜索关键词热度
  • 网站开发发展存在的问题软文新闻发布网站
  • 什么网站需要数据库网络营销的主要手段和策略
  • 创新的南昌网站设计旺道seo软件技术
  • 温岭做鞋子的网站站长工具星空传媒
  • wordpress静态首页设置北京网站优化方案
  • 如何对一个网站进行seo重庆seo全网营销
  • 山西 网站建设广东东莞大益队
  • 登陆网站密码不保存怎么做太原做网站推广的公司