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

网站域名跳转是怎么做的广州广告公司

网站域名跳转是怎么做的,广州广告公司,做网站推广好吗,网站建设验收内容1 背景 随着实际项目的完善,可维护变的更加重要。在日志中保存项目的版本或是构建信息是一个非常有用的方法。 CMake提供了configure_file()命令,可以帮助开发者在构建项目时,自动生成版本或是构建信息,便于开发者在代码中直接引…

在这里插入图片描述

1 背景

随着实际项目的完善,可维护变的更加重要。在日志中保存项目的版本或是构建信息是一个非常有用的方法。
CMake提供了configure_file()命令,可以帮助开发者在构建项目时,自动生成版本或是构建信息,便于开发者在代码中直接引用。

2 configure_file()命令介绍

2.1 参数说明

configure_file()命令的完整签名如下:

configure_file(<input> <output>[NO_SOURCE_PERMISSIONS | USE_SOURCE_PERMISSIONS |FILE_PERMISSIONS <permissions>...][COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF]])

复制<input>文件到<output>文件,同时根据命令的参数对复制的文件内容进行替换,同时也可以修改<output>文件的权限。

<input>

输入文件的路径,相对于CMAKE_CURRENT_SOURCE_DIR的路径。输入路径必须是文件,而不是目录。

<output>

输出文件或目录的路径,相对于CMAKE_CURRENT_BINARY_DIR的路径。如果路径包含不存在的目录,则会创建这些目录。如果路径指定一个现有目录,则输出文件将放置在该目录中,文件名与输入文件相同。

NO_SOURCE_PERMISSIONS

不要将输入文件的权限转移到输出文件。复制文件的权限默认为标准的644值 (-rw-r–r–)。

USE_SOURCE_PERMISSIONS

将输入文件的权限转移到输出文件。如果未给出三个与权限相关的关键字(NO_SOURCE_PERMISSIONS、USE_SOURCE_PERMISSIONS或FILE_PERMISSIONS),这就是默认行为。USE_SOURCE_PERMISSIONS关键字主要用于使调用的预期行为更清晰。

FILE_PERMISSIONS <permissions>...

忽略输入文件的权限,并为输出文件使用指定的 <permissions>。

COPYONLY
复制文件,不替换任何变量引用或其他内容。此选项不能与NEWLINE_STYLE一起使用。

ESCAPE_QUOTES
使用反斜杠(C风格)转义任何替换的引号。

@ONLY
将变量替换限制为@VAR@形式的引用。 CMake支持@VAR@${VAR}形式的的替换。推荐使用这个参数,避免与CMake脚本中的 ${VAR}混淆。

NEWLINE_STYLE <style>
指定输出文件的换行符样式。指定UNIX或LF表示\n换行符,或指定DOS、WIN32或CRLF表示\r\n换行符。此选项不能与COPYONLY一起使用。

实际项目中使用不会那么复杂,一般只使用基础签名

configure_file(<input> <output> [@ONLY])

2.2 常见用法

<input>文件理解为模板文件,CMakeLists.txt中的变量替换模板文件中相应的变量,生成一个新的文件。
项目中的常见用法是用构建时的版本号或是git的commit id替换模板文件。调用execute_process()命令查询git的commit id,并将其保存在versin.h头文件中。

cmake_minimum_required(VERSION 3.10)
project(my_app)# 执行git命令获取短哈希值
execute_process(COMMAND git rev-parse --short HEADWORKING_DIRECTORY ${CMAKE_SOURCE_DIR}  # 指定Git仓库根目录OUTPUT_VARIABLE GIT_SHORT_COMMIT_IDOUTPUT_STRIP_TRAILING_WHITESPACE      # 去除末尾空白字符ERROR_VARIABLE GIT_ERRORRESULT_VARIABLE GIT_RESULT
)# 错误处理
if(NOT GIT_RESULT EQUAL 0)message(FATAL_ERROR "Failed to get git commit ID: ${GIT_ERROR}")
endif()configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in${CMAKE_CURRENT_SOURCE_DIR}/version.h@ONLY
)add_executable(my_app main.cpp)
# 包含头文件路径
target_include_directories(my_app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

version.h.in文件内容如下

#include <string>
// 被替换的变量(此处为GIT_SHORT_COMMIT_ID)需要与CMakeLists.txt中定义的变量一致
const std::string git_short_commit_id = "@GIT_SHORT_COMMIT_ID@";

替换后的version.h文件内容如下:

#include <string>
const std::string git_short_commit_id = "5171b09";

main.cpp文件中引用version.h文件中的git_short_commit_id变量。

#include <iostream>
#include "version.h"int main()
{std::cout << "git short commit-id: " << git_short_commit_id << std::endl;return 1;
}

3 参考资料

https://cmake.org/cmake/help/latest/command/configure_file.html

4 最后

分享CMake使用中的小技巧。如果文章对您有帮助,不妨关注、收藏和转发,感谢。

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

相关文章:

  • 专做公司网站 大庆360站长工具
  • 做网站资料南京seo代理
  • vue.js网站如果做自适应关键词优化seo外包
  • 模板建站源码新闻最近新闻10条
  • 杭州门户网站建设灰色行业关键词推广
  • 哈尔滨道外区建设局官方网站合肥瑶海区
  • 网站备案管局电话网络服务器价格
  • 微信微网站制作教程网站的友情链接是什么意思
  • 北京有几个区几个县网址seo优化排名
  • 营销一型网站建设公司全国疫情实时资讯
  • 有没有专门做装修的网站资源最全的网盘搜索引擎
  • 手机网站建设 如何获得更好的排名百度电脑网页版
  • 人力资源公司起名大全册子深圳seo优化方案
  • 怎么做农产品垂直网站seo推广软件品牌
  • 企业网站收费标准郑州seo排名公司
  • 网站背景居中怎么做怎么制作公司网页
  • 桂电做网站的毕设容易过嘛百度认证考试
  • 做催乳的想上门到哪个网站深圳专业建站公司
  • 信阳网站设计在线推广企业网站的方法有
  • 东莞网站建设怎么样优化推广网站推荐
  • 做分子生物实验常用网站安卓排名优化
  • 局域网聊天工具有哪些优化关键词排名的工具
  • wordpress 上传图片尺寸谷歌优化培训
  • 新手如何做网站合肥seo招聘
  • wordpress文章编辑函数搜索引擎优化包括哪些
  • 做网站界面尺寸是多少营销软文800字范文
  • 网站流量限制it培训机构哪家好
  • 直销返利网站建设谷歌chrome
  • 查找网站备案信息成都网站关键词排名
  • 天长做网站的2024年将爆发新瘟疫