C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南set(key val PARENT_SCOPE) 才能修改到外面的变量。 第二章:第三方库 / 依赖项配置 用 find_package 寻找系统中安装的第三方库并链接他们 find_package 命令 • 常用参数列表一览: • find_package([version] [EXACT] [QUIET] [CONFIG] [MODULE] • nd_package.html find_package 命令用法举例 • find_package(OpenCV) • 查找名为 OpenCV 的包,找不到不报错,事后可以通过 ${OpenCV_FOUND} 查询是否找到。 • find_package(OpenCV QUIET) • 查找名为 OpenCV 的包,找不到不报错,也不打印任何信息。 • find_package(OpenCV cmake 进程,不再继续往下执行)。 • find_package(OpenCV REQUIRED COMPONENTS core videoio) • 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::core 和 OpenCV::videoio 这 两个组件,如果没有这两个组件也会报错。 • find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS 0 码力 | 56 页 | 6.87 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南怎么路径里动不动夹杂几个转移符、空格、特殊符号?这谁顶得住啊 。 高情商: Windows 是最适合练习你 C 语言转移符使用水平的地方 。 更通用的方式: find_package 更好的做法是用 CMake 的 find_package 命令。 find_package(TBB REQUIRED) 会查找 /usr/lib/cmake/TBB/TBBConfig.cmake 这个配置文 件,并根据里面的配置信息创建时候是纯头文件,而 find_package(spdlog REQUIRED) 时却 变成预编译链接库的版本。(嗯,其实不是 PUBLIC 而是 INTERFACE ,因为伪对象没有实体) 和古代 CMake 做对比:为什么 PUBLIC 属性的传播机制如此便利 现代 CMake : 古代 CMake : 和 find_package(TBB CONFIG REQUIRED) REQUIRED) 有什么区别? 其实更好的是通过 find_package(TBB CONFIG REQUIRED) ,添加了一个 CONFIG 选项。 这样他会优先查找 TBBConfig.cmake (系统自带的)而不是 FindTBB.cmake (项目作者常 把他塞在 cmake/ 目录里并添加到 CMAKE_MODULE_PATH )。这样能保证寻找包的这个 .cmake 脚本是和系统自带的 tbb 0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起引用系统中预安装的第三方库 • 可以通过 find_package 命令寻找系统中的包 / 库: • find_package(fmt REQUIRED) • target_link_libraries(myexec PUBLIC fmt::fmt) • 为什么是 fmt::fmt 而不是简单的 fmt ? • 现代 CMake 认为一个包 (package) 可以提供多个库,又称组件 (components) 还挺像的) 。 • 你可以指定要用哪几个组件: • find_package(TBB REQUIRED COMPONENTS tbb tbbmalloc REQUIRED) • target_link_libraries(myexec PUBLIC TBB::tbb TBB::tbbmalloc) 第三方库 - 常用 package 列表 1. fmt::fmt 2. spdlog::spdlog OpenVDB::openvdb 6. Boost::iostreams 7. Eigen3::Eigen 8. OpenMP::OpenMP_CXX • 不同的包之间常常有着依赖关系,而包管理器的作者为 find_package 编写的脚本(例如 /usr/lib/cmake/TBB/TBBConfig.cmake )能够自动查找所有依赖,并利用刚刚提 到的 PUBLIC PRIVATE 正确处理依赖项,比如如果你引用了0 码力 | 32 页 | 11.40 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺{"filter": {"val1": 0 }} {"pivot_wider": {"names_from": "field1", "values_from": "field2"}} {"pivot_longer": {"select": ["device1", "device2", "device3", "device4"], "names_to": "device", "values_to": "observation"0 码力 | 29 页 | 2.26 MB | 1 年前3
C++20's after)50 Differences between IANA and ICU time zone data IANA • Defines "standard" and "alternate" names for time zones. • Has a few older, somewhat abnormal time zones such as EWT (Eastern War Time) relatively newly renamed from America/Godthab ICU • ICU defines "canonical" and "non- canonical" names for time zones. • Contains the recently outdated name America/Godthab instead of the new name0 码力 | 55 页 | 8.67 MB | 6 月前3
Building Robot AppsBarcelona The problem Level up Bluetooth Scan Connect Send Command s https:// www.npmjs.com/package/nativescript-bluet ooth Sending commands Service / Characteristics Sending commands Protocol • Reading commands Protocol Reading data Gotcha #2 aka Are you for real? https://www.npmjs.com/package/nativescript-mip-ble Show me the code V2 - Native SDK Taking it a step further0 码力 | 18 页 | 14.80 MB | 1 年前3
C++20: An (Almost) Complete Overviewstructured with submodules and module partitions No need for include guards No need to invent unique names, same name in multiple modules will not clash Modules are processed only once faster build times0 码力 | 85 页 | 512.18 KB | 6 月前3
C++23: An Overview of Almost All New and Updated FeaturesFeatures Garbage Collection Support32 Named Universal Character Escapes Use Unicode assigned names instead of code point values Examples: Pre-C++23 // UTF-32 character literal {LATIN CAPITAL0 码力 | 105 页 | 759.96 KB | 6 月前3
Performance Lets dive into Performance issuesdatabase is a prime example. Enabling Optimization Testing • npm i v8-natives --save • Edit your app/package.json • Add --allow-native-syntax to v8Flags V8 Natives • Docs: https://github.com/NathanaelA/v8-Natives0 码力 | 15 页 | 1.71 MB | 1 年前3
陈东 - 利用Rust重塑移动应用开发-230618- Signer - cryptography support - Blockchain Support - Publish each module as independent package 利用 Rust 重塑移动应用开发 Photo / image / chart RCC_Android 利用 Rust 重塑移动应用开发 - RCC_Andorid is an rust0 码力 | 22 页 | 2.10 MB | 1 年前3
共 13 条
- 1
- 2













