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

国内外贸网站建设公司怎么用手机黑网站

国内外贸网站建设公司,怎么用手机黑网站,阿里云 个人网站 名称,seo优化工作有哪些这次是Cmake的重点#xff0c;多项目 文章目录 add_subdirectoryget_filename_component变量作用域全局变量主目录定义变量可以在子目录访问到字目录定义PARENT_SCOPE变量可以在主目录访问到 添加依赖项 其实我们在一个cmake中使用多个add_excuatable 和add_library就能有多个…这次是Cmake的重点多项目 文章目录 add_subdirectoryget_filename_component变量作用域全局变量主目录定义变量可以在子目录访问到字目录定义PARENT_SCOPE变量可以在主目录访问到 添加依赖项 其实我们在一个cmake中使用多个add_excuatable 和add_library就能有多个项目了。但是这样维护十分不方便。一般而言一个项目一个cmake文件并且放在一个独立的文件夹是常规做法。 add_subdirectory add_subdirectory是cmake提供的函数把其他目录下的cmake文件添加到此处。 add_subdirectory(subdirectory) subdirectory 是相对于当前 CMakeLists.txt 文件的子目录路径。 . . add_subdirectory 是 CMake 中的一个命令其语法如下 add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])source_dir指定包含 CMakeLists.txt 文件的源代码目录。binary_dir可选参数指定生成输出文件的二进制目录。如果未提供CMake 将使用与源目录对应的二进制目录。EXCLUDE_FROM_ALL可选参数如果存在则将在默认构建目标中排除在子目录中生成的目标。 EXCLUDE_FROM_ALL是make all的时候可以忽略这个文件一般很少用。 binary_dir是用来存放cmake生成的文件 假如说我们有多个cmake文件我们可以遍历 # 当前cmake文件夹中的module文件夹下的所有的文件夹存放在moduledirs 中 file(GLOB moduledirs ${CMAKE_SOURCE_DIR}/module/*) # 遍历刚才的文件夹列表 foreach(dir in ${moduledirs}) # 如果文件夹下存在一个CMakeLists.txt文件if(EXISTS ${dir}/CMakeLists.txt)get_filename_component(MODULE ${dir} NAME)message(MODULE : ${MODULE})add_subdirectory(${dir} ${CMAKE_SOURCE_DIR}/build/${MODULE})endif() endforeach()get_filename_component 是 CMake 中的一个命令用于提取文件路径的不同部分。其语法如下 get_filename_component(variable filename component [CACHE])variable指定一个变量来存储提取的组件的结果。filename指定要提取组件的文件路径。component指定要提取的组件可以是以下之一 DIRECTORY目录部分。NAME文件名部分。EXT文件扩展名。NAME_WE文件名部分不包含扩展名。 [CACHE]可选参数如果存在则将结果缓存以便后续调用 get_filename_component 时直接使用缓存的值。 add_subdirectory 在 CMake 中用于将其他目录的 CMakeLists.txt 文件包含到当前项目中。关于变量的访问有一些规则 变量作用域 全局变量 PS E:\workspace\cmake_demo\simple_demo\build cmake .. -- Building for: Visual Studio 16 2019 -- ^^^^^^Compiler: MSVC -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^E:/workspace/cmake_demo/simple_demo/Lib/x64/Debug MODULE : module1 -- ^^^^^^Compiler: MSVC MODULE : module2 -- ^^^^^^Compiler: MSVC -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^E:/workspace/cmake_demo/simple_demo/Lib/x64/Debug -- Configuring done (0.0s) -- Generating done (0.1s) -- Build files have been written to: E:/workspace/cmake_demo/simple_demo/build子目录和主目录同时打印下面这个打印出来是同样的结果。 message(STATUS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^${CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG})E:/workspace/cmake_demo/simple_demo/Lib/x64/Debug E:/workspace/cmake_demo/simple_demo/Lib/x64/Debug 子目录打印 message(STATUS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^${CMAKE_SOURCE_DIR}/Lib/${platform}/Debug)结果还是E:/workspace/cmake_demo/simple_demo/Lib/x64/Debug说明子目录的CMAKE_SOURCE_DIR是主目录一致 在CMake中CMAKE_SOURCE_DIR 是一个全局变量代表顶层CMakeLists.txt所在的目录不是当前CMakeLists.txt文件所在的目录。因此无论在主目录还是在子目录中使用 CMAKE_SOURCE_DIR都将得到同样的结果即顶层CMakeLists.txt所在的目录。 如果你想要在子目录中获取当前CMakeLists.txt所在的目录可以使用 CMAKE_CURRENT_SOURCE_DIR。这个变量表示当前处理的 CMakeLists.txt 文件所在的目录。 所以在你的例子中如果想在子目录中获取与子目录相关的路径可以使用 CMAKE_CURRENT_SOURCE_DIR而不是 CMAKE_SOURCE_DIR。例如 message(STATUS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ${CMAKE_CURRENT_SOURCE_DIR}/Lib/${platform}/Debug)这样可以确保在子目录中获取到正确的路径。 主目录定义变量可以在子目录访问到 主目录添加 set(fock “fock”) 子目录可以打印出来 message(STATUS ^^^^^^^^^^${fock}) 多层级的子目录也可以访问到也就是多次执行add_subdirectory 字目录定义PARENT_SCOPE变量可以在主目录访问到 子目录设置变量 set(MY_VARIABLE “Hello” PARENT_SCOPE) 主目录可以打印出来 后加载的子目录可以把先加载的子目录中的PARENT_SCOPE变量打印出来假如MY_VARIABLE 在module1中定义module2后加载那么module2可以打印MY_VARIABLE 。 PARENT_SCOPE 只能穿透到上一层的作用域即它将变量传递到调用 add_subdirectory 的上一层目录。如果有多层的 add_subdirectory则需要多次使用 PARENT_SCOPE 才能传递到更上一层目录。 例如 # CMakeLists.txt (Level 1) set(MY_VARIABLE Value PARENT_SCOPE) add_subdirectory(subdir)# subdir/CMakeLists.txt (Level 2) set(MY_VARIABLE NewValue PARENT_SCOPE)在这个例子中subdir/CMakeLists.txt 中的 MY_VARIABLE 通过 PARENT_SCOPE 被传递到 CMakeLists.txt (Level 1) 中但如果存在更上一层的目录你需要在更上一层再次使用 PARENT_SCOPE 才能传递到更上一层。 添加依赖项 # 设置依赖库 SET(Dependsmodule1)# 设置依赖关系和链接库 foreach(loop_var ${Depends})if(EXISTS ${PROJECT_SOURCE_DIR}/${loop_var})add_dependencies(${LIN_NAME} ${loop_var})endif() # 顺势加载库SET(LINK_LIBRARY optimized ${PROJECT_SOURCE_DIR}/Lib/x64/Release/${loop_var}${CMAKE_RELEASE_POSTFIX}.lib debug ${PROJECT_SOURCE_DIR}/Lib/x64/Debug/${loop_var}${CMAKE_DEBUG_POSTFIX}.lib)target_link_libraries(${SAMPLE_NAME} PRIVATE ${LINK_LIBRARY}) endforeach()两个子目录一个是module1一个是module2module1先被add_subdirectorymodule2即使还没有被add_subdirectorymodule1也可以依赖于module2。 但是不要循环依赖 CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):MYLIBADD of type SHARED_LIBRARYdepends on MYLIBSUB (strong)MYLIBSUB of type SHARED_LIBRARYdepends on MYLIBADD (strong) At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
http://www.zqtcl.cn/news/502057/

相关文章:

  • 12306的网站是哪个公司做的wordpress搜索页分类
  • 众筹网站的分析与设计wordpress 主题制作教程
  • 淘宝放单网站怎么做app制作公司哪个好
  • 地税城市维护建设税网站是什么意思订阅号怎么开通小程序
  • 网站添加二级域名wordpress火车头免登录发布
  • 大美工设计网站官网中山网站建设找丁生
  • 做算命网站标准版网站制作
  • 建设网站是普通办公吗温州 网站 公司
  • 哪里做外贸网站汉服网站开发背景
  • 建模外包网站企业代码查询入口
  • wordpress快速仿站视频教程广州知名网站建设哪家好
  • 楼盘网站开发网站服务理念
  • 私人ftp服务器seo整站如何优化
  • 做网站的工作叫什么美工需要会哪些软件
  • 阿克苏网站建设咨询海南跨境免税电商入驻流程
  • 母婴网站模板在线设计网站海报
  • 网站关键词优化公司哪家好如何跟客户沟通网站建设
  • 山西省经济建设投资公司网站滁州网站建设
  • 优秀设计网站哈尔滨vi设计公司
  • 如何建购物网站论坛类的网站怎样做
  • 河南省建设工程招投标协会网站安卓开发软件工具
  • 中国空间站wordpress无法选择服务器配置
  • 郑州家居网站建设服务公司asp网站助手
  • 做网站一般几个人WordPress 中英文翻译
  • 有没有兼职做网站的化工企业建网站
  • 石家庄展厅设计公司黑帽seo怎么做网站排名
  • 网站开发维护成本计算wordpress 无法访问
  • 永久免费做网站营销软文广告
  • 网站规划怎么写wordpress如何搭建博客
  • 网站索引页面网站做302重定向会怎么样