C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起规则,为 g++ 准备的参数可能对 MSVC 不适用。 • CMake 可以自动检测当前的编译器,需要添加哪些 flag 。比如 OpenMP ,只需要在 CMakeLists.txt 中指明 target_link_libraries(a.out OpenMP::OpenMP_CXX) 即可。 输出的可执行文件 输入的多个源文件 CMake 的命令行调用 • 读取当前目录的 CMakeLists Windows 环境下,初学者自己创建库时,建议使用静态库。 • 但是他人提供的库,大多是作为动态库的,我们之后会讨论如何使用他人的库。 • 创建库以后,要在某个可执行文件中使用该库,只需要: • target_link_libraries(myexec PUBLIC test) # 为 myexec 链接刚刚制作的库 libtest.a • 其中 PUBLIC 的含义稍后会说明( CMake 中有很多这样的大写修饰符) 子文件夹里,因此 main.cpp 里也要改成: • 如果要避免修改代码,我们可以通过 target_include_directories 指定 • a.out 的头文件搜索目录: ( 其中第一个 hellolib 是库名,第二个是目录 ) • 这样甚至可以用来引用这个头文件了,因为通过 target_include_directories 指 定的路径会被视为与系统路径等价: 0 码力 | 32 页 | 11.40 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南推荐的目录组织方式 • 目录组织格式: • 项目名 /include/ 项目名 / 模块名 .h • 项目名 /src/ 模块名 .cpp • CMakeLists.txt 中写: • target_include_directories( 项目名 PUBLIC include) • 源码文件中写: • #include < 项目名 / 模块名 .h> • 项目名 :: 函数名 (); pybmain 链接上 biology : target_link_libraries(pybmain PUBLIC biology) • 由于 PUBLIC 属性具有传染性,根 /biology/include 现在也加入 pybmain 的 头文件搜索路径了,因此 pybmain 里可以 #include 到 biology 的头文件。 • 同理如果又有一个 target_link_libraries(zxxpig --build build --parallel 8 # 8 核心编译,生成 libtest.so • sudo cmake --build build --target install # 安装,拷贝到 /usr/lib/libtest.so • 注:如果 -DCMAKE_INSTALL_PREFIX=/usr/local 则会拷贝到 /usr/local/lib/libtest0 码力 | 56 页 | 6.87 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南--build 指令,不同平台,统一命 令! • cmake -B build • cmake --build build -j4 • sudo cmake --build build --target install • cmake -B build 免去了先创建 build 目录再切换进去再指定源码目录的麻烦。 • cmake --build build 统一了不同平台( Linux 上会调用 里 也可以只针对一个库,只对他启用位置无关的代码 (PIC) 第 4 章:对象的属性 除了 POSITION_INDEPENDENT_CODE 还有哪些这样的属性? 另一种方式: set_target_properties 批量设置多个属性 另一种方式:通过全局的变量,让之后创建的所有对象都享有同样的属性 相当于改变了各个属性的初始默认值。 要注意此时 set(CMAKE_xxx) 必须在 的头文件就在 /usr/include 这个系统默认的头文件目录 ,这样才能 #include不出错,如果 tbb 的头文件在其他 地方就需要再加一个 target_include_directories 设置额外的头文件查找目录 。 也可以直接写出全部路径,就是太硬核 也可以直接写出全部路径,这样也可以让没有默认系统路径的 Windows 找到安装在奇怪位置的 0 码力 | 166 页 | 6.54 MB | 1 年前3
NativeScript 101Genymotion NativeScript LiveSync $ tns run //For all connected devices/emulators $ tns run android //Target specific platform $ tns run ios --emulator o Refresh app with latest changes to JS, CSS, XML android:or ios: o Ex: Write once by default. Target specific platform capabilities when needed. Styling with CSS CSS Convention: app.css <-- Global 0 码力 | 90 页 | 40.11 MB | 1 年前3
应用 waPC (rust) 做软件测试工具waPC &[u8] Result,error > Linux x86_64, macOS x86_64 ,Wi ndows x86_64, … cargo build —target wasm- unknown-unknown waPC Host (Go) waPC Guest Rust • Read wasm file • Select engine • Wazero targets=\/v2\/m atches\/.*\/info" \ --header "Content-Type:application/octet- stream" \ --data-binary "@target/wasm32- unknown-unknown/release/examples/ $3.wasm" Mock rule based on path matching regex extern 0 码力 | 30 页 | 2.50 MB | 1 年前3
whats new in visual studioactions • Doxygen integration Target Windows, Linux, macOS, MinGW and more Seamless onramp to CI with CMakePresets.json Learn more at https://aka.ms/cmake 🚀 Linux targeting Target any Linux distro, including0 码力 | 42 页 | 19.02 MB | 6 月前3
C++20's 2021:\n"; year target_year{2021}; for (int mo = 1; mo <= 12; ++mo) { // the second Tuesday of each month year_month_weekday patch_tues{mo/Tuesday[2]/ target_year}; year_month_day0 码力 | 55 页 | 8.67 MB | 6 月前3
绕过conntrack,使用eBPF增强 IPVS优化K8s网络性能near time • Make CPU the bottleneck • 1 CPU handles 500,000 pps • Make LB the bottleneck • The target server and client server shall be powerful enough Performance measurement Test topology Test result0 码力 | 24 页 | 1.90 MB | 1 年前3
陈东 - 利用Rust重塑移动应用开发-230618chart Rust FFI On IOS - Rust targets for IOS - Build the static universal library for different target - Call the function on the swift code 利用 Rust 重塑移动应用开发 Photo / image / chart Rust 在 Keystone0 码力 | 22 页 | 2.10 MB | 1 年前3
THE FIRST EXPLORATION OF PROJECT SPARROWSparrow Development build the Renode Rust UART peripheral example: cargo build --target wasm32-unknown-unknown --release --lib III. Sparrow Development on branch "26999-rust_uart":0 码力 | 68 页 | 13.14 MB | 1 年前3
共 11 条
- 1
- 2













