首页 > 解决方案 > GCC 为 build.rs 链接错误的 libpthread

问题描述

我正在尝试从 Linux (NixOS) 交叉编译到 Windows 并遇到一些挫折。

似乎有两个部分共同破坏了构建:

有什么问题?好吧,build.rs必须使用常规 GCC 而不是 MinGW 构建,因为它需要在我的系统上执行。但由于某种原因,GCC 试图链接到 Windowslibpthread库而不是系统库,因此失败并出现关于不支持库格式的错误。

(失败)替代品

如果我删除build.rs,项目构建良好。不幸的是,我需要它来获得全部功能。

如果我删除了 Windows 版本libpthreadbuild.rs构建并正确运行,但在构建项目的其余部分时,MinGW 会因缺少库错误而失败。

解决路径?

要么我必须弄清楚为什么 GCC 链接到错误的版本libpthread,或者我必须-lpthread完全禁用build.rs. 我不知道为什么它需要 pthreads,考虑到测试我将它剥离到只有fn main() {}.

我不知道从哪里开始,而且我已经花了几天的时间来解决这个问题。我会很感激一些帮助!

标签: rustpthreadscross-platformcross-compilingnix

解决方案


推荐阅读