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

网站不备案可以使用么企业标准网站模板

网站不备案可以使用么,企业标准网站模板,济南建设网建筑市场信用信息管理平台,瑞昌网站建设问题描述 我有一个使用 CMake 构建的现有 C/Qt 项目,我想开始添加 Rust 代码,并能够从主 C 代码库中调用这些 Rust 代码。应该如何组织项目结构? 现有项目结构 ./CMakeLists.txt ./subproject-foo/CMakeLists.txt ./subproject-foo/src/..…
问题描述

我有一个使用 CMake 构建的现有 C++/Qt 项目,我想开始添加 Rust 代码,并能够从主 C++ 代码库中调用这些 Rust 代码。应该如何组织项目结构?

现有项目结构
./CMakeLists.txt
./subproject-foo/CMakeLists.txt
./subproject-foo/src/...
./subproject-bar/CMakeLists.txt
./subproject-bar/src/...
./common/CMakeLists.txt
./common/src/...

我想添加一个类似结构的 common-rust/ 目录。

解决方案

为了在 CMake 项目中集成 Rust 代码,可以使用 ExternalProject 模块,它可以用于构建不使用 CMake 的外部依赖项。

Rust 项目设置

假设你有一个 common-rust 子目录,其 Cargo.toml 文件如下:

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

并且在 lib.rs 文件中定义一个函数 add

#[no_mangle]
pub extern fn add(lhs: u32, rhs: u32) -> u32 {lhs + rhs
}
CMake 项目设置

在顶层的 CMakeLists.txt 文件中,可以这样配置:

add_executable(Example cpp/main.cpp)# 启用 ExternalProject CMake 模块
include(ExternalProject)# 设置 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)# 创建 Example 对 rust_example 的依赖关系
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 文件内容如下:

#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 平台,需要修改链接的系统库。例如,在 macOS 上需要链接 m, c, System, resolv 库。

另一种方案

可以使用 Corrosion 项目,它简化了 CMake 与 Cargo 项目的集成。在 CMakeLists.txt 文件中添加以下内容:

find_package(Corrosion REQUIRED)
corrosion_import_crate(MANIFEST_PATH ${CMAKE_SOURCE_DIR}/common-rust)
参考资料
  • 使用 ExternalProject 构建外部项目
  • Corrosion 项目 GitHub 页面

这样配置之后,您应该可以成功将 Rust 代码集成到现有的 C++/Qt/CMake 项目中。

http://www.yayakq.cn/news/558070/

相关文章:

  • 后缀为net的网站有哪些wordpress设置恢复
  • 网站建设运营岗位职责培训的网站建设
  • 给个网站免费的做经营性的网站需要注册什么条件
  • 在线logo设计免费生成器厦门seo外包服务
  • 网站开发量上海建设工程招标
  • 网站建设必学课程网站锚文本使用查询
  • 阜南网站建设娄底做网站
  • 开设赌场罪 网站开发嘉兴免费自助建站模板
  • 建设商城网站多少钱wordpress使用第三方播放器
  • 用ps怎么做网站首页拼多多跨境电商怎么样
  • 金华永康义乌网站建设公司注册记账代理公司
  • 网站盈利ai网站
  • 马关县网站建设网站建设工作室源码
  • 手机网站可以做百度商桥吗沧州网站制作的流程
  • 比较好的网页模板网站网站的区别
  • 如何做网络营销推广方案广州seo优化电话
  • 企业网站 更新 seo余杭区高端网站建设
  • 北京网站建设排名有什么网站可以下做闭软件
  • 做企业网站 长春传统网站建设
  • 网站建设和管理情况调查表wordpress手机客户端端
  • 做网站要考虑什么绵阳公司网站制作公司
  • 香飘飘网站平台建设wordpress最近浏览器
  • 创建网站的基本流程优设网视频剪辑教程
  • 郑州建网站的好处咋样建设网站
  • wordpress使用缩略图搜索引擎优化方法有哪些
  • 淘宝天猫优惠券网站建设费用人力资源公司网站建设方案
  • flash网站设计师欧模网
  • 政务服务 网站 建设方案wordpress 多级导航
  • 便利的聊城网站建设服务器租用托管
  • 吉林省城乡建设部网站怎么用视频做网站首页