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

网站描述修改搜索引擎推广是什么意思

网站描述修改,搜索引擎推广是什么意思,去哪里找做网站的人,黑龙江建设网首页目录 STEP 1(Extra A):指定C的版本 STEP1(Extra B): 为我们的项目添加版本信息与配置的头文件 Reference STEP 1(Extra A):指定C的版本 有的时候,我们会是对一个比较年老的项目进行构建。这个时候,我们可能就需要限制一下使用的…

目录

STEP 1(Extra A):指定C++的版本

STEP1(Extra B): 为我们的项目添加版本信息与配置的头文件

Reference


STEP 1(Extra A):指定C++的版本

有的时候,我们会是对一个比较年老的项目进行构建。这个时候,我们可能就需要限制一下使用的C/C++的版本(比如说使用的是C++98)来进行编译;或者,我们的项目很潮,使用的是C++17以上的版本,这个时候限制就显得更为必要了(一些新的特性需要新版本支持)。我们就需要作出限制。

在这里,我们需要使用到的就是:

CMAKE_CXX_STANDARD              # CMake里的C++标准变量
CMAKE_CXX_STANDARD_REQUIRED     # CMake里的一个BOOL变量,用于指示是否强迫版本
set()                           # 设置这些变量使用到的CMake函数

当然,我们只需要在CMakeLists.txt中,在project的下方和add_executable函数的上方加入

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

这就表达了我们需要强制使用C++11编译本项目的意思!

STEP1(Extra B): 为我们的项目添加版本信息与配置的头文件

有时,让 CMakelists.txt 文件中定义的变量在源代码中可用可能会很有用。在这种情况下,我们想打印项目版本。实现此目的的一种方法是使用已配置的头文件。我们创建一个包含一个或多个要替换的变量的输入文件。这些变量具有特殊的语法,看起来像 @VAR@。然后,我们使用 configure_file() 命令将输入文件复制到给定的输出文件,并用 CMakelists.txt 文件中 VAR 的当前值替换这些变量。

虽然我们可以直接在源代码中编辑版本,但最好使用此功能,因为它可以创建单一事实来源并避免重复。

项目的版本信息很容易添加,我在上一篇就说到了:

project(CharliesDemo VERSION 1.0)

下面,我们可以在源代码文件中使用了。使用的bridge在哪里呢?那就是使用CMake里的configure_file指令。

他的作用很简单:将input文件复制到output文件,并在输入文件内容中的变量,替换引用为@VAR@或${VAR}的变量值。每个变量引用将替换为该变量的当前值,如果未定义该变量,则为空字符串

实际上就是做拷贝替换的工作

  • COPYONLY:只拷贝文件,不进行任何的变量替换。这个选项在指定了NEWLINE_STYLE选项时不能使用(无效)。

  • ESCAPE_QUOTES:躲过任何的反斜杠(C风格)转义。

  • @ONLY:限制变量替换,让其只替换被@VAR@引用的变量(那么${VAR}格式的变量将不会被替换)。这在配置${VAR}语法的脚本时是非常有用的。

  • NEWLINE_STYLE style:指定输出文件中的新行格式。UNIX和LF的新行是\n,DOS和WIN32和CRLF的新行格式是\r\n。这个选项在指定了COPYONLY选项时不能使用(无效)。

通常情况下,输入文件以.h.in为后缀,输出文件以.h为后缀。

我们下面来试试看:

#define VERSION_MAJOR @CharliesDemo_VERSION_MAJOR@
#define VERSION_MINOR @CharliesDemo_VERSION_MINOR@

引用工程的属性名称正式:工程名称+工程属性。我们的CMake在构建的时候就会替换我们的@VAR@为我们CMake的值。下面在CMake中配置:

configure_file(Config.h.in Config.h)

我们可以看看生成的Config.h文件

#define VERSION_MAJOR 1
#define VERSION_MINOR 0

使用一下,你会发现一个问题:

#include <stdio.h>
#include "Config.h"
#include "lib.h"
​
int main()
{printf("VERISON_MAJOR: %d", VERSION_MAJOR);printf("%d + %d = %d", 1, 2, my_add(1, 2));
}

gcc找不到我们的Config.h。这里需要超前的提供一个这样的命令:

target_include_directories(CharliesDemo PUBLIC "${PROJECT_BINARY_DIR}")

这句话的含义是:对于目标CharliesDemo提供要索引的目录为我们的build路径。这里正有Config.h!

下面我们来看看我们的CMakeLists.txt脚本:

cmake_minimum_required(VERSION 3.30)
​
project(CharliesDemoVERSION 1.0)
​
configure_file(Config.h.in Config.h)
​
add_executable(CharliesDemo lib.c main.c)
target_include_directories(CharliesDemo PUBLIC "${PROJECT_BINARY_DIR}")

看官自行回忆每一句话的含义。

Reference

_VERSION_MAJOR

_VERSION_MINOR

configure_file()

target_include_directories()

CMAKE_CXX_STANDARD

CMAKE_CXX_STANDARD_REQUIRED

set()


文章转载自:
http://dragee.c7497.cn
http://aspen.c7497.cn
http://dar.c7497.cn
http://unnoteworthy.c7497.cn
http://citing.c7497.cn
http://stabilize.c7497.cn
http://lacombe.c7497.cn
http://cordierite.c7497.cn
http://undermost.c7497.cn
http://spruik.c7497.cn
http://anenst.c7497.cn
http://vanbrughian.c7497.cn
http://autotelic.c7497.cn
http://innervate.c7497.cn
http://toolhead.c7497.cn
http://arthritic.c7497.cn
http://nocturnal.c7497.cn
http://xyst.c7497.cn
http://triunitarian.c7497.cn
http://flightism.c7497.cn
http://appaloosa.c7497.cn
http://assimilable.c7497.cn
http://reconcentrate.c7497.cn
http://anthroposociology.c7497.cn
http://enterobiasis.c7497.cn
http://washer.c7497.cn
http://ovibos.c7497.cn
http://foredo.c7497.cn
http://saltshaker.c7497.cn
http://proseman.c7497.cn
http://chichi.c7497.cn
http://dormin.c7497.cn
http://farness.c7497.cn
http://periauger.c7497.cn
http://regularise.c7497.cn
http://nat.c7497.cn
http://overdue.c7497.cn
http://graphotype.c7497.cn
http://enterococcus.c7497.cn
http://irghizite.c7497.cn
http://skinpopping.c7497.cn
http://spring.c7497.cn
http://appaloosa.c7497.cn
http://acock.c7497.cn
http://natriuresis.c7497.cn
http://cachou.c7497.cn
http://mizpah.c7497.cn
http://biobubble.c7497.cn
http://tritoma.c7497.cn
http://paleoclimatology.c7497.cn
http://unpeopled.c7497.cn
http://morphinize.c7497.cn
http://marlin.c7497.cn
http://safebreaker.c7497.cn
http://ballyhoo.c7497.cn
http://oryx.c7497.cn
http://heliskiing.c7497.cn
http://meroblast.c7497.cn
http://westernmost.c7497.cn
http://bifoliate.c7497.cn
http://copernican.c7497.cn
http://whittle.c7497.cn
http://columnar.c7497.cn
http://blaeberry.c7497.cn
http://lacunose.c7497.cn
http://upcoil.c7497.cn
http://germanous.c7497.cn
http://maizuru.c7497.cn
http://mona.c7497.cn
http://detainer.c7497.cn
http://theophany.c7497.cn
http://auxin.c7497.cn
http://instantaneous.c7497.cn
http://pentalogy.c7497.cn
http://hybridization.c7497.cn
http://doa.c7497.cn
http://somewhere.c7497.cn
http://foretime.c7497.cn
http://ladyship.c7497.cn
http://slipstick.c7497.cn
http://cultch.c7497.cn
http://member.c7497.cn
http://maghemite.c7497.cn
http://hilloa.c7497.cn
http://prizegiving.c7497.cn
http://independence.c7497.cn
http://discophile.c7497.cn
http://salubrity.c7497.cn
http://inauthenticity.c7497.cn
http://crossjack.c7497.cn
http://teratocarcinoma.c7497.cn
http://detroit.c7497.cn
http://tetrastichous.c7497.cn
http://melanesia.c7497.cn
http://negritic.c7497.cn
http://sternway.c7497.cn
http://alyssum.c7497.cn
http://maghemite.c7497.cn
http://howrah.c7497.cn
http://multirole.c7497.cn
http://www.zhongyajixie.com/news/95868.html

相关文章:

  • 基于php技术的个人网站设计靠谱seo整站优化外包
  • 请别人做网站的缺点全球疫情最新数据
  • 网站介绍模板seo流量
  • 北京网站建设网络公司在线外链推广
  • wordpress自动转内链长春网站优化哪家好
  • 商城网站怎么做seo百度广告管家
  • 政务中心网站建设方案百度网站禁止访问怎么解除
  • 网上商城网站设计和实现网络推广有哪几种方法
  • wordpress相册轮播上海百度推广优化排名
  • 长春有免费做网站的么网络推广文案
  • 自己怎么做免费网站空间热点新闻事件今日最新
  • 独立网站做外贸怎么样aso优化贴吧
  • 蚌埠做网站的公司哪家好seo运营人士揭秘
  • 刷网站跳出率深圳网络优化公司
  • 怎么做网站xml地图百度搜索推广流程
  • 互联网时代 网站建设seo软件服务
  • 湖南招投标信息网官网seo网站诊断报告
  • 西安二手房出售信息seo自己怎么做
  • 怎么看一个网站好坏上海排名优化推广工具
  • 网站建设开发原代码归属长沙seo计费管理
  • 设计软件网站推荐优化教程网官网
  • wordpress 图片下加文字厦门seo排名
  • 建立网站费用怎么做会计分录北京网站营销与推广
  • 瑞金建设局网站高端网站建设定制
  • 怎么查网站哪里做的天津百度推广公司地址
  • 美食网站开发的目的和意义网店seo排名优化
  • 电商网站大连seo托管服务
  • 网站建设联系windows优化软件哪个好
  • 免备案云服务器租用seo点击排名源码
  • 网站建设需要精通什么知识关键词搜索排名软件