我正在尝试在项目中使用rustlearn
条板箱。在Cargo.toml
中添加了依赖项。
由于rustlearn
需要gcc
,因此我下载并安装了MinGW64
。
我尝试了以下gcc
构建:
每次将PATH
环境变量设置为适当的g++.exe
并重新启动VSCode。
但是每次我尝试构建Rust软件包时,都会出现这样的错误:
= note: C:\Rust\PF\machinelearning\target\debug\deps\librustlearn-4ae611e3fd449ac0.rlib(svm.o): In function `ZN6KernelC2EiPKP8svm_nodeRK13svm_parameter':
C:\Git-local-repos\rustlearn/dependencies/libsvm/svm.cpp:256: undefined reference to `__gxx_personality_sj0'
C:\Git-local-repos\rustlearn/dependencies/libsvm/svm.cpp:256: undefined reference to `_Unwind_SjLj_Register'
C:\Git-local-repos\rustlearn/dependencies/libsvm/svm.cpp:258: undefined reference to `_Unwind_SjLj_Resume'
C:\Git-local-repos\rustlearn/dependencies/libsvm/svm.cpp:289: undefined reference to `_Unwind_SjLj_Unregister'
多次。 我意识到问题出在某种程度上与异常处理(seh / sjlj)有关。 我的系统是Windows 7 x86-64,防锈工具链是stable-i686-pc-windows-gnu。
我在做什么错了?
答案 0 :(得分:0)
我创建MWE时没有遇到这些错误。
在我看来,这似乎是您尝试使用gcc
链接由g++
编译的* .o。
我无法复制您的问题。这就是我所做的-结果成功构建了一个项目:
cargo new
创建了一个新项目,并将以下内容添加到Cargo.toml
:rustlearn = "0.5.0"
我运行了cargo check
以下载所有必需的依赖项。
我编辑了src/main.rs
,以包含来自here的逻辑回归示例,并对其进行了修改,以便在main()
函数中对其进行调用。
我运行了cargo build
,它成功编译了crossbeam
,libc
,serde
,rand
,rustlearn
和{{ 1}}-我的测试包的名称。输出了几次棉绒警告;他们被忽略了。
我运行了rustlearn-test
,它成功运行了该程序。
FWIW,我正在Windows 10上使用WSL。
答案 1 :(得分:0)
我发现MinGW的正确版本是i686-7.1.0-posix-dwarf-rt_v5-rev2。