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

做准的算命网站郑州seo网络营销

做准的算命网站,郑州seo网络营销,开发手机app用什么语言,网站开发的基本技术路线目录 0.前言 & 准备1.节点关系2.添加子目录3.解决问题1.根目录2.calc目录3.sort目录4.calc_test目录5.sort_test 4.注意 0.前言 & 准备 如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个CMakeLists.txt&#…

目录

  • 0.前言 & 准备
  • 1.节点关系
  • 2.添加子目录
  • 3.解决问题
    • 1.根目录
    • 2.calc目录
    • 3.sort目录
    • 4.calc_test目录
    • 5.sort_test
  • 4.注意


0.前言 & 准备

  • 如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个CMakeLists.txt,那么这个文件相对会比较复杂
  • 有一种化繁为简的方式就是给每个源码目录都添加一个CMakeLists.txt文件(头文件目录不需要),这样每个文件都不会太复杂,而且更灵活,更容易维护
  • 以下目录结构为例
    .
    ├── CMakeLists.txt
    ├── bin
    ├── build
    ├── calc
    │   ├── CMakeLists.txt
    │   ├── add.c
    │   ├── div.c
    │   ├── mult.c
    │   └── sub.c
    ├── calc_test
    │   ├── CMakeLists.txt
    │   └── calc_main.c
    ├── include
    │   ├── calc.h
    │   └── sort.h
    ├── lib
    ├── sort
    │   ├── CMakeLists.txt
    │   └── sort.c
    └── sort_test├── CMakeLists.txt└── sort_main.c
    

1.节点关系

  • Linux的目录是树状结构,所以嵌套的CMake也是一个树状结构,最顶层的CMakeLists.txt根节点,其次都是子节点
  • 因此,需要了解一些关于CMakeLists.txt文件变量作用域的一些信息:
    • 根节点CMakeLists.txt中的变量全局有效
    • 父节点CMakeLists.txt中的变量可以在子节点中使用
    • 子节点CMakeLists.txt中的变量只能在当前结点中使用

2.添加子目录

  • CMake中建立父子节点关系
    add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
    
  • 参数
    • source_dir:指定了CMakeLists.txt源文件和代码文件的位置,其实就是指定子目录
    • binary_dir:制定了输出文件的路径,一般不需要指定,忽略即可
    • EXCLUDE_FROM_ALL:在子路径下的目标默认不会被包含到父路径的ALL目标里,并且也会被排除在IDE工程文件之外。用户必须显式构建在子路径下的目标

3.解决问题

1.根目录

  • 根目录中的CMakeLists.txt文件
    cmake_minimum_required(VERSION 3.15)
    project(mult_test)# 设置静态库生成路径
    set(LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
    # 测试程序生成的路径
    set(EXEC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
    # 头文件目录
    set(HEAD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include)# 静态库名字
    set(CALC_LIB calc)
    set(SORT_LIB sort)# 可执行程序的名字
    set(APP_NAME_1 calc_test)
    set(APP_NAME_2 sort_test)# 给当前结点添加子目录目录
    add_subdirectory(calc)
    add_subdirectory(sort)
    add_subdirectory(sort_test)
    add_subdirectory(calc_test)
    
  • 在根节点对应的文件中主要做了两件事情:定义全局变量和添加子目录
    • 定义的全局变量主要是给子节点使用,目的是为了提高子节点中的CMakeLists.txt文件的可读性和可维护性,避免冗余并降低出错的概率
    • 一共添加了四个子目录,每个子目录中都有一个CMakeLists.txt文件,这样它们的父子关系就被确定下来了

2.calc目录

  • calc目录中的CMakeLists.txt文件
    cmake_minimum_required(VERSION 3.15)
    project(calc)# 搜索源文件
    aux_source_directory(./ SRC)
    include_directories(${HEAD_PATH})set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIB_PATH})
    add_library(${CALC_LIB} STATIC ${SRC})
    

3.sort目录

  • sort目录中的CMakeLists.txt文件
    cmake_minimum_required(VERSION 3.15)
    project(sort)# 搜索源文件
    aux_source_directory(./ SRC)
    include_directories(${HEAD_PATH})set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIB_PATH})
    add_library(${SORT_LIB} STATIC ${SRC})
    

4.calc_test目录

  • calc_test目录中的CMakeLists.txt文件
    cmake_minimum_required(VERSION 3.15)
    project(calc_test)# 搜索源文件
    aux_source_directory(./ SRC)
    include_directories(${HEAD_PATH})link_directories(${LIB_PATH})
    link_libraries(${CALC_LIB})set(EXECUTABLE_OUTPUT_PATH ${EXEC_PATH})
    add_executable(${APP_NAME_1} ${SRC})
    

5.sort_test

  • sort_test目录中的CMakeLists.txt文件
    cmake_minimum_required(VERSION 3.15)
    project(calc_test)# 搜索源文件
    aux_source_directory(./ SRC)
    include_directories(${HEAD_PATH})link_directories(${LIB_PATH})
    link_libraries(${SORT_LIB})set(EXECUTABLE_OUTPUT_PATH ${EXEC_PATH})
    add_executable(${APP_NAME_2} ${SRC})
    

4.注意

  • 在实际开发中,一个大型的 CMake 项目中,project() 命令通常只在最外层的 CMakeLists.txt 文件中出现一次
  • 顶层 CMakeLists.txt 文件是项目的入口点,在这里应该定义项目名称、全局设置和添加子目录
    cmake_minimum_required(VERSION 3.10)
    project(MyLargeProject)# 设置全局属性
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED True)# 添加子目录
    add_subdirectory(src)
    add_subdirectory(lib)
    
  • 在子目录的 CMakeLists.txt 文件中,通常不需要重复使用 project() 命令,相反,应该专注于定义目标(例如:库或可执行文件)、设置目标属性和包含路径
    # 添加库文件
    add_library(MyLibrary mylibrary.cpp)
    # 设置包含路径
    target_include_directories(MyLibrary PUBLIC ${CMAKE_SOURCE_DIR}/include)
    
http://www.mmbaike.com/news/39207.html

相关文章:

  • 什么是seo和sem有什么区别优化网站快速排名软件
  • 网站开发公司制作平台哪家培训机构学校好
  • 电子商务网站建设方案案例济南seo关键词排名工具
  • 网站做很多关键词品牌营销策划公司排名
  • 网络推广的常用方法求好用的seo软件
  • 怎样才能做好销售百度手机端排名如何优化
  • 用ps可以做网站吗网站外链购买平台
  • 免费制作宣传册的appseo如何优化关键词排名
  • 辽宁网站备案网络营销的策略包括
  • 做网站要自己租服务器百度网盘搜索引擎入口在哪
  • jquery 做网站seo关键词推广案例
  • 永久网站建设今日热点新闻排行榜
  • 软件开发工具有哪些seo的工具有哪些
  • 个人网站备案内容网站设计与网页制作
  • 永久免费的网站软件桌面百度
  • 深圳靠谱网站建设公司怎么找精准客户资源
  • 一千个长尾关键词用一千个网站做百度竞价推广代运营公司
  • 代理IP做网站天津网络推广seo
  • 织梦做的网站用什么数据库宁德市教育局
  • b2b2c盈利模式潍坊百度seo公司
  • 一浪网站建设电商网站建设步骤
  • 网站建设对旅游意义西安网约车
  • 快速做网站公司seo全网图文推广
  • 受欢迎的广州网站设计网站制作和推广
  • 宁夏交通建设有限公司网站免费外链发布平台在线
  • 网络公司 营销型网站郑州抖音推广
  • 近三年网络营销案例北京网站优化外包
  • java项目网站开发简述什么是网络营销
  • 网站没有做实名认证温州网站优化推广方案
  • 做水果网站需要些什么线上推广怎么做