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

网站建设大连建设网站的网站安全

网站建设大连,建设网站的网站安全,网站网页设计在哪找,wordpress客户端APP文章目录检测操作系统处理平台相关源码处理编译器相关源码编译编译处理器相关源码检查cpu是32位还是64位的检测cpu架构处理 CPU指令相关源码案例展示 Eigen3向量化加速项目设置编译器开启向量化优化《CMake cookbook》笔记检测操作系统 cmake中通过CMAKE_SYSTEM_NAME变量来识别… 文章目录检测操作系统处理平台相关源码处理编译器相关源码编译编译处理器相关源码检查cpu是32位还是64位的检测cpu架构处理 CPU指令相关源码案例展示 Eigen3向量化加速项目设置编译器开启向量化优化《CMake cookbook》笔记检测操作系统 cmake中通过CMAKE_SYSTEM_NAME变量来识别系统类型。 主流操作系统 LinuxWindowsDarwin (即macos)AIX (IBM AIX) 例如 if(CMAKE_SYSTEM_NAME STREQUAL Linux)do something endif()处理平台相关源码 在cpp等源文件中通过宏控制操作系统平台相关源码 例如 target_compile_definitions(targetName PUBLIC/INTERFACE/PRIVATE “IS_LINUX”) 为特定目标设定宏定义等 精细度控制 add_definitions(-DIS_LINUX) 整个CMakeLists.txt项目中都设置宏精细度小 在源文件中定义 source.cpp ...... #ifdef IS_WINDOWSsource code for windows #elif IS_LINUXsource code for linux #elif IS_Darwinsource code for macos #endif ......在CMakeLists.txt中定义如下 .... if(CMAKE_SYSTEM_NAME STREQUAL Linux)target_compile_definitions(helloworld PUBLIC IS_LINUX) endif() if(CMAKE_SYSTEM_NAME STREQUAL Darwin)target_compile_definitions(helloworld PUBLIC IS_MACOS) endif() if(CMAKE_SYSTEM_NAME STREQUAL Windows)target_compile_definitions(helloworld PUBLIC IS_WINDOWS) endif() .....target_compile_definitions()为特定目标进行定义和编译。 例如 #为源文件helloworld.cpp生成的target hellworld可执行文件定义一个宏IS_LINUX target_compile_definitions(helloworld PUBLIC IS_LINUX)处理编译器相关源码编译 与编译系统相关的源码一样为源文件设置宏定义。 通过CMAKE_LANG_COMPILER_ID获取编译器名称, LANG为 CXXCPYTHON等 获取编译器名称后为源文件定义宏 例如 # 定义源项目中使用的宏定义 IS_XXX_CXX_COMPILER target_compile_definitions(HelloWorld PUBLIC IS_${CMAKE_CXX_COMPILER_ID}_CXX_COMPILER)编译处理器相关源码 检查cpu是32位还是64位的 通过cmake系统变量CMAKE_SIZEOF_VOID_P的大小进行判断. CMAKE_SIZEOF_VOID_P8 为64位cpu否则为32位cpu 例如: CMakeLists.txt if(CMAKE_SIZEOF_VOID_P EQUAL 8)#64位cpu相关cmake设置 else()#32位cpu相关cmake设置 endif()检测cpu架构 通过cmake的CMAKE_HOST_SYSTEM_PROCESSOR系统变量来识别cpu架构 常见cpu架构有: i386i686x86_64AMD64 例如: if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES i386)#i386相关设置elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES i686)#i686相关CMake设置elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES x86_64)#x86_64相关CMake设置elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES AMD64)#AMD64相关CMake设置else() endif() message(STATUS ${CMAKE_HOST_SYSTEM_PROCESSOR} architecture detected)CMAKE_SYSTEM_PROCESSOR与CMAKE_HOST_SYSTEM_PROCESSOR有细微差别. 处理 CPU指令相关源码 cmake_host_system_information 该cmake指令用于查询系统中的信息. 例如: cmake_host_system_information(RESULT _NUMBER_OF_LOGICAL_CORES QUERY NUMBER_OF_LOGICAL_CORES)cpu逻辑核心数结果存放在_NUMBER_OF_LOGICAL_CORES中,类似于系统检测, 系统相关, 编译器相关, CPU相关. 获取cpu指令集相关信息后就能在项目中针对不同指令集,包含不同的源文件从而生成适合平台的可执行文件(或库). tips: 在add_executable()中,可以先不指定源文件通过检测不同平台的相关信息, 通过cmake if else语句添加对应的源文件. 例如: # add_executable中源文件为空是为了依据检测到的操作系统类型,编译器类型,cpu架构等来添加相应的源文件 add_executable(targetName ) if( condition ) # 添加源文件 target_sources(targetName PRIVATE relate_source_file) endif() # add file folder for target target_include_directories(ISC_infoPRIVATE${PROJECT_BINARY_DIR} #当前cmakelists中对应的build文件夹 ) ...... #修改并复制一份源文件到另一个位置,比如target_include_directories中指定的build文件夹 configure_file(config.h.in config.h ONLY)案例展示 Eigen3向量化加速项目 处理器的向量功能可以加速程序的执行,例如向量运算. eigen是线性代数C模板库. 设置编译器开启向量化优化 #checkCXXCompilerFlag.cmake标准模块文件: include(CheckCXXCompilerFlag) #GNU编译器的向量化加速编译选项 check_cxx_compiler_flag(-marchnative _march_native_works) # intel编译器的向量化加速编译选项 check_cxx_compiler_flag(-xHost _xhost_works) #根据获得的值(例如_march_native_works设定编译选项) list(APPEND flags -marchnative) # or list(APPEND flags -xHost) 指示编译器检查处理器并为当前体系结构生成本机编译优化选项.使用CheckCXXCompilerFlag.cmake模块提供的check_cxx_compiler_flag函数进行编译器标志的检查
http://www.hkea.cn/news/14487430/

相关文章:

  • 重庆网站制作外包企业建设网站能否报销
  • 产品销售类网站 模板怀化建网站
  • 网站怎样做域名绑定wordpress文章的地址
  • 信息网站建设的意义便宜的做网站公司
  • 网站建设管理与维护功能意义中原郑州网站建设
  • 网站建设gzzhixun零售网站建设
  • 怎样做分类网站提供专业网站小程序开发
  • php做网站目录结构做网站怎么搭建环境
  • 专业做网站的页面设计拼多多代运营收费标准
  • 百度收录网站标题肥城做网站tahmwlkj
  • 展会邀请函在哪个网站做wordpress画栏
  • 做网站和SSH成都APP 微网站开发
  • 如何在自己的网站上做友情链接网站设为首页代码
  • 网站聊天系统怎么做微信公众号管理平台登录
  • 上海创意网站建设简单html网页制作
  • 网站改版怎样做301什么网站可以做图片
  • php网站建设案例昆明移动互联网开发
  • 外卖网站建设价钱教育类网站模板
  • 做动漫网站用什么程序seo研究中心怎么了
  • 无锡网站设计无锡网站建设微商城开发需要多少钱
  • 网站建设意见建议怎么做销售网站
  • 南阳百度网站推广html网站建设中
  • 小公司网站维护wordpress 分页导航无效
  • 音乐类网站模板信息技术网站建设专业
  • 有什么网站可以做名片新农村建设投诉在哪个网站
  • 收费的网站如何免费企业网站建设费
  • 静态网站挂马企业seo案例
  • 网站数据分析建设海口网站运营托管咨询
  • 定制网站开发哪个好公司部门组织架构图
  • 苏州网站设计公司怎么查楼盘预售许可证