中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

82端口做網(wǎng)站品牌傳播策劃方案

82端口做網(wǎng)站,品牌傳播策劃方案,網(wǎng)站做的好的公司有,公安網(wǎng)站備案流程圖問題描述 我有一個使用 CMake 構(gòu)建的現(xiàn)有 C/Qt 項目,我想開始添加 Rust 代碼,并能夠從主 C 代碼庫中調(diào)用這些 Rust 代碼。應(yīng)該如何組織項目結(jié)構(gòu)? 現(xiàn)有項目結(jié)構(gòu) ./CMakeLists.txt ./subproject-foo/CMakeLists.txt ./subproject-foo/src/..…
問題描述

我有一個使用 CMake 構(gòu)建的現(xiàn)有 C++/Qt 項目,我想開始添加 Rust 代碼,并能夠從主 C++ 代碼庫中調(diào)用這些 Rust 代碼。應(yīng)該如何組織項目結(jié)構(gòu)?

現(xiàn)有項目結(jié)構(gòu)
./CMakeLists.txt
./subproject-foo/CMakeLists.txt
./subproject-foo/src/...
./subproject-bar/CMakeLists.txt
./subproject-bar/src/...
./common/CMakeLists.txt
./common/src/...

我想添加一個類似結(jié)構(gòu)的 common-rust/ 目錄。

解決方案

為了在 CMake 項目中集成 Rust 代碼,可以使用 ExternalProject 模塊,它可以用于構(gòu)建不使用 CMake 的外部依賴項。

Rust 項目設(shè)置

假設(shè)你有一個 common-rust 子目錄,其 Cargo.toml 文件如下:

[package]
name = "rust_example"
version = "0.1.0"[lib]
name = "rust_example"
crate-type = ["staticlib"]

并且在 lib.rs 文件中定義一個函數(shù) add

#[no_mangle]
pub extern fn add(lhs: u32, rhs: u32) -> u32 {lhs + rhs
}
CMake 項目設(shè)置

在頂層的 CMakeLists.txt 文件中,可以這樣配置:

add_executable(Example cpp/main.cpp)# 啟用 ExternalProject CMake 模塊
include(ExternalProject)# 設(shè)置 ExternalProject 的根目錄
set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/Rust)# 將 rust_example 添加為 CMake 目標
ExternalProject_Add(rust_exampleDOWNLOAD_COMMAND ""CONFIGURE_COMMAND ""BUILD_COMMAND cargo build --releaseBINARY_DIR "${CMAKE_SOURCE_DIR}/common-rust"INSTALL_COMMAND ""LOG_BUILD ON)# 創(chuàng)建 Example 對 rust_example 的依賴關(guān)系
add_dependencies(Example rust_example)# 指定 Example 的鏈接庫
target_link_libraries(Exampledebug "${CMAKE_SOURCE_DIR}/common-rust/target/debug/librust_example.a"optimized "${CMAKE_SOURCE_DIR}/common-rust/target/release/librust_example.a"ws2_32 userenv advapi32)set_target_properties(Example PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON)

請注意,這里依賴于 Cargo 在路徑中可用。

示例 C++ 代碼

cpp/main.cpp 文件內(nèi)容如下:

#include <cstdint>
#include <iostream>extern "C" {uint32_t add(uint32_t lhs, uint32_t rhs);
}int main() {std::cout << "1300 + 14 == " << add(1300, 14) << '\n';return 0;
}
平臺依賴

對于非 Windows 平臺,需要修改鏈接的系統(tǒng)庫。例如,在 macOS 上需要鏈接 m, c, System, resolv 庫。

另一種方案

可以使用 Corrosion 項目,它簡化了 CMake 與 Cargo 項目的集成。在 CMakeLists.txt 文件中添加以下內(nèi)容:

find_package(Corrosion REQUIRED)
corrosion_import_crate(MANIFEST_PATH ${CMAKE_SOURCE_DIR}/common-rust)
參考資料
  • 使用 ExternalProject 構(gòu)建外部項目
  • Corrosion 項目 GitHub 頁面

這樣配置之后,您應(yīng)該可以成功將 Rust 代碼集成到現(xiàn)有的 C++/Qt/CMake 項目中。

http://www.risenshineclean.com/news/48563.html

相關(guān)文章:

  • 上海專業(yè)做網(wǎng)站公司電話石家莊網(wǎng)絡(luò)關(guān)鍵詞排名
  • 現(xiàn)在pc網(wǎng)站的標準一般是做多大網(wǎng)絡(luò)營銷的作用
  • 招商加盟網(wǎng)站模板程序百度網(wǎng)站推廣怎么做
  • 那個網(wǎng)站有免費的模板百度搜索指數(shù)查詢
  • mac做網(wǎng)站設(shè)計全網(wǎng)營銷渠道
  • 安卓系統(tǒng)誰開發(fā)的5年網(wǎng)站seo優(yōu)化公司
  • 為什么做這個網(wǎng)站項目企業(yè)seo
  • 溫州市建設(shè)工程信息網(wǎng)溫州seo教程
  • 計算機課程網(wǎng)站建設(shè)實訓報告總結(jié)南昌seo搜索排名
  • 上海住房和城市建設(shè)廳網(wǎng)站app推廣項目從哪接一手
  • 廣州網(wǎng)站營銷優(yōu)化開發(fā)請輸入搜索關(guān)鍵詞
  • 自己做圖片的網(wǎng)站網(wǎng)絡(luò)營銷渠道類型有哪些
  • 合肥哪里有做網(wǎng)站今天合肥剛剛發(fā)生的重大新聞
  • 商務(wù)部直銷行業(yè)管理信息系統(tǒng)西安網(wǎng)站seo排名優(yōu)化
  • 作弊網(wǎng)站網(wǎng)站開發(fā)建設(shè)步驟
  • 個人做的小網(wǎng)站需要備案網(wǎng)絡(luò)推廣銷售是做什么的
  • 公司做網(wǎng)站要注意什么seo需要培訓才能找到工作嗎
  • 網(wǎng)站優(yōu)化軟件排名器怎么創(chuàng)建網(wǎng)頁鏈接
  • 網(wǎng)站日均ip過萬怎么做最佳磁力搜索引擎
  • 河長制網(wǎng)站建設(shè)希愛力雙效片的作用與功效
  • 網(wǎng)站建設(shè)報價方案對比seo招聘要求
  • 自助網(wǎng)站建設(shè)怎么建設(shè)口碑營銷案例簡短
  • wix怎么做網(wǎng)站引流推廣效果好的app
  • 網(wǎng)站建設(shè)公司廣告語蘇州網(wǎng)站制作開發(fā)公司
  • 網(wǎng)站優(yōu)化千牛幫濟南全網(wǎng)推廣
  • 成都建站優(yōu)化公司合肥seo網(wǎng)站管理
  • 做公司網(wǎng)站報價亞馬遜跨境電商
  • 福州企業(yè)網(wǎng)站建設(shè)國內(nèi)快速建站
  • wordpress源碼閱讀知乎關(guān)鍵詞優(yōu)化軟件
  • 網(wǎng)站分站作用網(wǎng)站推廣的目的