Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过CMake构建rust库并将其用作导入的库目标 我正在重新构建基于CMAP的跨平台构建(MaCOS/Windows,Linux应该很快添加)C++项目,它有第三方锈库作为依赖。到目前为止,rust-lib依赖项是作为预编译库提供的,但我希望将其编译作为我的CMake构建的一部分_Cmake_Visual Studio 2019_Rust Cargo_Ninja - Fatal编程技术网

通过CMake构建rust库并将其用作导入的库目标 我正在重新构建基于CMAP的跨平台构建(MaCOS/Windows,Linux应该很快添加)C++项目,它有第三方锈库作为依赖。到目前为止,rust-lib依赖项是作为预编译库提供的,但我希望将其编译作为我的CMake构建的一部分

通过CMake构建rust库并将其用作导入的库目标 我正在重新构建基于CMAP的跨平台构建(MaCOS/Windows,Linux应该很快添加)C++项目,它有第三方锈库作为依赖。到目前为止,rust-lib依赖项是作为预编译库提供的,但我希望将其编译作为我的CMake构建的一部分,cmake,visual-studio-2019,rust-cargo,ninja,Cmake,Visual Studio 2019,Rust Cargo,Ninja,我使用CMake makefile exporter在macOS上运行它,将编译后的库作为静态导入库目标引用,并使用命令设置一个自定义目标,通过这样的货物构建rust库 add_library (rustlib STATIC IMPORTED) add_custom_target (rustlib_cargo WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/Ext/rustlib/c-api COMMAND

我使用CMake makefile exporter在macOS上运行它,将编译后的库作为静态导入库目标引用,并使用命令设置一个自定义目标,通过这样的货物构建rust库

add_library (rustlib STATIC IMPORTED)
add_custom_target (rustlib_cargo
            WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/Ext/rustlib/c-api
            COMMAND cargo rustc --release -- --crate-type staticlib)

# Note: RUSTLIB_OUTPUT is set above refering to the absolute path of the produced platform specific library
set_target_properties (rustlib PROPERTIES IMPORTED_LOCATION ${RUSTLIB_OUTPUT})
add_dependencies (rustlib rustlib_cargo)
在macOS上,在构建与my
rustlib
目标链接的目标之前,会调用
cargo rustc
命令,如果之前已经构建了锈迹库,则cargo会检测到该锈迹库,它只会跳过该编译。但在Windows上,Microsoft Visual Studio 2019的内置忍者导出器失败,错误如下:

ninja : error : '../../../Ext/rustlib/target/release/deps/rustlib.lib', needed by 'SomeTargetLinkingAgainstRustlib', missing and no known rule to make it
如果我删除行
set_target_properties(rustlib properties IMPORTED_LOCATION${rustlib_OUTPUT})
生成正确启动,就会触发rust生成,但正如预期的那样,由于找不到要链接的库,我最终会出现链接器错误。那么,有没有办法引用一个在配置时不存在但保证在编译期间创建的文件