Rust compile error on macOS related to GMP
类似
的东西
1 2 3 4 5 6 7 | use super::gmp::mpz::Mpz; ... pub type MyMPZ = Mpz; ... fn a() -> Option<MyMPZ>; |
它(以及许多其他Rust文件,库和其他依赖项)可以在Ubuntu甚至Windows上编译并运行正常,但可以在macOS Mojave上运行
我得到
expected struct `gmp::mpz::Mpz`, found enum `std::option::Option`
note: expected type `&gmp::mpz::Mpz`
found type `&std::option::Option`
我在Brew上安装了GMP,但是我尝试使用自己构建的GMP 6.1.2来获得相同的结果。
更新1:
似乎MCVE没有多大意义,因为我在同一根目录中有两个项目的确切副本,例如root \\\\\\\\ example1和root \\\\\\\\ example2。一份可以建立,另一份可以给出错误信息。多次尝试清洁货物以达到相同效果。
更新2:
似乎绝对是某种缓存问题。因为当我构建依赖项时,它们会从
ightly-i686-pc-windows-msvc\\lib\
ustlib\\i686-pc-windows-msvc\\lib
expected struct `gmp::mpz::Mpz`, found another struct `gmp::mpz::Mpz`
这对我来说似乎是GMP 32/64位库的混合。
好吧,那是货物依赖地狱:)-在多次不成功的重新安装,清理等之后,我终于能够通过手动下载并重建并重新引用git所引用的依赖关系的本地路径来进行重建。从那时起-无论我是本地引用还是通过git或crate进行引用,一切都很好。