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

wordpress手机上传图片插件网络优化seo是什么工作

wordpress手机上传图片插件,网络优化seo是什么工作,一键注册所有网站,自己做的网站怎么在移动端访问目录 问题由来 解决办法 方法1 set函数结合PARENT_SCOPE 代码 效果 方法2 使用PARENT_SCOPE结合双重${} 代码 效果 方法3 使用CACHE 代码 效果 问题由来 比如说,CMakeLists.txt所在路径下还有2个文件夹,且每个文件夹下各自有两个文件&#x…

目录

问题由来

解决办法

方法1 set函数结合PARENT_SCOPE

代码

效果

方法2 使用PARENT_SCOPE结合双重${}

代码

效果

方法3 使用CACHE

代码

效果


问题由来

比如说,CMakeLists.txt所在路径下还有2个文件夹,且每个文件夹下各自有两个文件:一个cpp,一个h。

如何使用CMake的一个function遍历这两个文件,把里面的内容打印出来?

解决办法

以下三个办法都受了deepseek解答的启发,亲测有效

方法1 set函数结合PARENT_SCOPE

代码

cmake_minimum_required(VERSION 3.22.1)project(parent)function (addpath)file(GLOB var1 "view/*.cpp")file(GLOB var2 "model/*.cpp")string(APPEND SRC_CPP "${var1}")#注意,这里一定要用string,不能用setstring(APPEND SRC_CPP "${var2}")set(SRC_CPP "${SRC_CPP}" PARENT_SCOPE)file(GLOB var1 "view/*.h")file(GLOB var2 "model/*.h")string(APPEND SRC_HDR "${var1}")#注意,这里一定要用string,不能用setstring(APPEND SRC_HDR "${var2}")set(SRC_HDR "${SRC_HDR}" PARENT_SCOPE)
endfunction()addpath()message(STATUS "SRC_HDR=${SRC_HDR}\nSRC_CPP=${SRC_CPP}")

file(GLOB 变量名 "正则表达式")函数从正则表达式中找到所有匹配的文件(这里是子目录view或者model中的h文件和cpp文件),获取所有头文件和cpp文件的路径,然后将路径输入到 变量var1 和var2中

string(APPEND ...)将var1 和 var2的内容添加到SRC_CPP或者SRC_HDR中。注意,string这里操作的变量的作用域都在function内部。

set(....PARENT_SCOPE)将SRC_HDR/SRC_CPP的内容传递到function作用域的上一级。

效果

方法2 使用PARENT_SCOPE结合双重${}

代码

cmake_minimum_required(VERSION 3.22.1)project(parent)set(CPP_SRC "")
set(CPP_HDR "")function (addpath path suffix)file(GLOB var1 "view/*.${suffix}")file(GLOB var2 "model/*.${suffix}")set(var "${var1} ${var2}")set(${path} "${${path}} ${var}" PARENT_SCOPE)
endfunction()addpath(CPP_SRC "cpp")
addpath(CPP_HDR "h")message("STATUS" "CPP_HDR=${CPP_HDR} CPP_SRC=${CPP_SRC}")

1 这里语句file(GLOB var1 "view/*.${suffix}")使用了${}符号。 使用了这个符号之后,file指令不会直接使用suffix作为其输入变量,而是将suffix视为一个变量,采用变量的值作为输入变量。

比如addpath(CPP_SRC "cpp"),这里suffix = "cpp",所以file(GLOB var1 "view/*.${suffix}")会把cpp代入suffix,变为file(GLOB var1 "view/*.cpp")再执行。

2 同样的道理,set (${path} "${${path}} ${var}" PARENT_SCOPE)把${path}视为变量的内容。在addpath(CPP_SRC "cpp")中,path = CPP_SRC。所以set (${path} "${${path}} ${var}" PARENT_SCOPE)就变成了set(CPP_SRC "${CPP_SRC}..." PARENT_SCOPE)。而第二个CPP_SRC的外面因为又有一层${},所以${SRC_CPP}又指向了SRC_CPP的内容。由于CPP_SRC一开始被赋值为"",所以set (${path} "${${path}} ${var}" PARENT_SCOPE)最后变成了

set (SRC_CPP """ ${var}" PARENT_SCOPE)。也就是说,SRC_CPP=""+${var}=${var}

这个值var由前面set(var "${var1} ${var2}")决定。

3 最后,set (SRC_CPP """ ${var}" PARENT_SCOPE)由于使用了PARENT_SCOPE,所以其结果作用在上一级--也就是调用addpath这一层级--的变量SRC_CPP。

效果

方法3 使用CACHE

代码

cmake_minimum_required(VERSION 3.22.1)project(parent)function (addpath)file(GLOB var1 "view/*.cpp")file(GLOB var2 "model/*.cpp")set(SRC_CPP "${var1} ${var2}" CACHE STRING "cpp path" FORCE)file(GLOB var1 "view/*.h")file(GLOB var2 "model/*.h")set(SRC_HDR "${var1} ${var2}" CACHE STRING "hpp path" FORCE)
endfunction()addpath()message(STATUS "SRC_HDR=${SRC_HDR}\nSRC_CPP=${SRC_CPP}")

这里set函数与CACHE配合使用。 这样配合使用的结果是,set操作的变量(这里是SRC_CPP和SRC_HDR)被存入CMakeCache.txt文件:

//cpp path
SRC_CPP:STRING=C:/code/cmake/parntScope/view/view.cpp C:/code/cmake/parntScope/model/model.cpp

//hpp path
SRC_HDR:STRING=C:/code/cmake/parntScope/view/view.h C:/code/cmake/parntScope/model/model.h

存入CMakeCache.txt之后, SRC_CPP和SRC_HDR就成了全局变量,作用域不仅限于function,而是整个CMake项目。甚至在CMake通过add_subdirectory包括了其他CMakeLists.txt的情况下,各级CMakeLists.txt都可以访问这些全局变量

最后,set函数还加了FORCE选项。FORCE的作用如下:覆盖CMakeCache.txt中已有的赋值。假如CMakeCache.txt已经含有了SRC_CPP和SRC_HDR。那么仅仅调用set(....CACHE...)是不会再起作用的。要想覆盖CMakeCache.txt中已有的赋值,就要调用set(...CACHE..FORCE)。

效果


文章转载自:

http://v6eSqsIP.jwcmq.cn
http://ZrqVMoyI.jwcmq.cn
http://NToWGyek.jwcmq.cn
http://8wFNXugH.jwcmq.cn
http://jhETyh1l.jwcmq.cn
http://g4laaE1d.jwcmq.cn
http://qZTjeQba.jwcmq.cn
http://VYDo7lNf.jwcmq.cn
http://D4wLmcqQ.jwcmq.cn
http://ACZz0X8E.jwcmq.cn
http://IpO8QVj3.jwcmq.cn
http://AxQQrgdq.jwcmq.cn
http://CsxZVlcp.jwcmq.cn
http://Xw3622Gl.jwcmq.cn
http://P2tXeAvY.jwcmq.cn
http://sDbx3kaK.jwcmq.cn
http://MMyTclaW.jwcmq.cn
http://DT0TTgBp.jwcmq.cn
http://SG9NlLQH.jwcmq.cn
http://8ZtPD8Xp.jwcmq.cn
http://pJ8749M1.jwcmq.cn
http://dDTXOjYU.jwcmq.cn
http://futzKIx9.jwcmq.cn
http://diawyLxF.jwcmq.cn
http://cNtA30IU.jwcmq.cn
http://Zf8v6epU.jwcmq.cn
http://Uh1EY4on.jwcmq.cn
http://loJbvwt8.jwcmq.cn
http://RqCyN8Lf.jwcmq.cn
http://4X3ODksi.jwcmq.cn
http://www.dtcms.com/wzjs/646306.html

相关文章:

  • 如何做网站内容wordpress 微信同步
  • 休闲咖啡厅网站开发目标做网站要会写代码吗
  • 学习网站建设的书籍wordpress木木主题
  • 网站开发图片压缩上传报酬佛山模板建站定制网站
  • ps做 网站标准尺寸是多少合适网站做淘宝推广收入
  • 电商项目流程益阳seo网站建设
  • 做微信的微网站费用多少合适重庆网站关键词排名优化
  • 建设学分银行网站策划书做网站看什么书好
  • 自己做网站推广需要多少钱wordpress 微博相册
  • 山西百度网站建设河北省建设厅网站登陆设置
  • 做淘宝客网站好搭建吗?wordpress分类使用不同模板
  • 做外链的网站广州冼村和猎德村哪个最有钱
  • 前后端分离的网站怎么做前端网站做完 后端用什么做
  • wordpress升级需要ftp桂林seo公司推荐23火星
  • 目录浏览的网站注册记账代理公司注册
  • 网站后台首页设计刷关键词优化排名
  • 深圳 网站建设公wordpress全静态
  • 共青城市建设局网站手机网站自助建
  • 网站是asp还是php动漫制作专业介绍及就业方向
  • 公司网站建设计入什么科目制作公司网页多少钱
  • 太原做app网站建设推广网站实例
  • 免费动漫网站网络科技公司logo
  • 做网站销售的工作wordpress 2m带宽 支持多少人
  • 网站哪里有微信上的网站
  • wordpress 建视频网站吗南昌专业网站建设首页排名
  • 小学校园门户网站建设医疗器械龙头股
  • 中国廉政建设网网站苏宁易购网站上的营销页面
  • 珠海网站管理公司dtcms网站开发教程
  • 网站成立时间巨量数据官网
  • 做网站的公司怎么做抖音账号wordpress弄个人博客好