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

温州建网站哪家好自己怎么搭建网站

温州建网站哪家好,自己怎么搭建网站,做网站赚钱不,网站建设中如何发布信息推广一_变量设值: 在上一节中我们知道了如何去链接起来多个源文件并且生成可执行文件&#xff0c;但是当我们的源文件过多的时候会导致我们在add_executable里面写很长的一串&#xff0c;所以我们可以使用变量来进行设值: set(<variable> <value>... [PARENT_SCOPE])…

一_变量设值:

在上一节中我们知道了如何去链接起来多个源文件并且生成可执行文件,但是当我们的源文件过多的时候会导致我们在add_executable里面写很长的一串,所以我们可以使用变量来进行设值:

set(<variable> <value>... [PARENT_SCOPE]) variable:变量名 value:变量的值 [PARENT_SCOPE]:可选):
如果指定,变量将被设置到父作用域中(例如在函数中定义的变量可以在函数外使用)。
在set中可以用了给变量进行设置值的操作,一般值的类似都是字符串的类型。

我们直接来看使用set完善后的结果:

cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
set(SRC_LIST div.cpp mul.cpp;sub.cpp;add.cpp main.cpp)
message("SRC_LIST is " ${SRC_LIST})
add_executable(cmake_lession2 ${SRC_LIST})#定义工程生成一个可执行文件

在这里我们给变量SRC_LIST设值的值就是后面跟着的那些div.cpp mul.cpp;sub.cpp;add.cpp main.cpp,这里我们可以看到可以使用空格或者;进行分隔,这里的message就类似一个输出语句,用来打印SRC_LIST里面的内容,在cmake中我们使用变量的值都是使用${}把变量框起来,当我们执行cmake ../后的结果如下:

从这里我们可以看出我们的message语句的输出结果可以在cmake 阶段进行打印。在实际的程序中,不同的团队或者个人的一些库的路径不同,我们再写cmakelists.txt的时候这些路径也不能写死,所以变量就给了我们很大的灵活性。这个我们后面是会经常使用到的。

二_源文件搜索:

        虽然变量的引入可以帮我们优化cmakelists.txt中对于源文件的使用,但是还是需要我们去一个一个的新增源文件,还是有点麻烦的。所以我们接下来介绍如何搜索源文件:

aux_source_directory(<dir> <variable>)
命令会扫描 <dir> 目录下的所有文件,将符合 CMake 默认支持的源文件扩展名(如 .c, .cpp, .cxx, .h 等)的 ​绝对路径 存储到 <variable> 变量中。

这个时候我们就可以把set那句话替换掉,然后将我们的源文件都放在一个新建的src的文件中:

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
aux_source_directory(src SRC_LIST)
message("SRC_LIST is " ${SRC_LIST})
add_executable(cmake_lession2 ${SRC_LIST})#定义工程生成一个可执行文件#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

然后我们重新编译,就会发现,报错了:

这是因为头文件的位置不对导致的。那么我们只需要包含下头文件即可:

include_directories(./include)

这里我们同样也是新建一个include文件然后将头文件放到include里面,然后在生成可执行文件之前加入这句话即可,完整内容如下:

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
aux_source_directory(src SRC_LIST)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
add_executable(cmake_lession2 ${SRC_LIST})#定义工程生成一个可执行文件#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

三_文件搜索:

        既然说到了源文件的搜索,那么我们可以扩大点,简单来介绍下文件的搜索方式,在cmake中应该也会使用到:

# file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型) 
GLOB:将指定目录下搜索到的满足条件的所有文件名生成一个列表,并将其存储到变量中(仅当前目录)
GLOB_RECURSE:当前目录下的所有子目录

还是使用上面那个例子,不过我们不使用aux_source_directory。具体如下(GLOB版本):

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
add_executable(cmake_lession2 ${SRC_LIST})#定义工程生成一个可执行文件#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

(GLOB_RECURSE 版本,可以在src目录下新增一个文件夹cpp_1,然后把src原来下的cpp文件都移动进去,这样使用GLOB的版本就会报错):

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB_RECURSE SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
add_executable(cmake_lession2 ${SRC_LIST})#定义工程生成一个可执行文件#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

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

相关文章:

  • 商务网站建设的应用零基础学什么技术好
  • 新注册的公司怎么做网站app营销十大成功案例
  • 网站图标素材图片怎么注册百度账号
  • 上海网站制作费用佛山市seo推广联系方式
  • 优化网络的软件下载青岛关键词优化seo
  • 做网站客户要先看效果后付款郑州seo优化外包热狗网
  • 南山网站建设深圳信科百度seo哪家公司好
  • 公司无网站无平台怎么做外贸网络舆情监测与研判
  • 静态网站设计模板网络广告营销的概念
  • 无锡网站优化建站自己怎么做网站
  • 怎么样的网站合适做城市代理厦门seo怎么做
  • 云浮网站建设郑州网络运营培训
  • 在线制作网站乔拓云推广产品的渠道
  • 山东省建设公司网站网店推广策略
  • 个人网站做哪些内容steam交易链接可以随便给别人吗
  • 做网站包头游戏推广赚佣金的平台
  • 按城市亭湖建设局网站免费的网站
  • 哪些网站能够免费做公考题中国互联网数据平台
  • wordpress建站教程阿里云网页
  • 安庆网站设计sem和seo区别与联系
  • 做网站什么好苏州百度推广
  • 佛山seo优化电话网站seo策划
  • 绵阳市 政府网站建设世界互联网峰会
  • wordpress点击打印网页广告优化
  • 岳阳网页网络seo排名
  • 许昌 网站建设郑州最好的建站公司
  • 机械加工网站色彩搭配企业查询软件
  • 济宁做网站比较好的公司有哪些网页搭建
  • 哈尔滨可以做网站的公司西安百度快速排名提升
  • 如何建网站不花钱cpa游戏推广联盟