【问题标题】:How to cross compile a library in Ubuntu for mingw/msys2 in Windows?如何在 Ubuntu 中为 Windows 中的 mingw/msys2 交叉编译库?
【发布时间】:2020-06-03 10:04:14
【问题描述】:

我有一个 sqlite 库,需要在 msys2 环境中使用,它无法访问互联网。我想在 msys2 环境中编译并提供二进制文件的路径。

我该如何做常规

./configure --prefix=/path/to/my/folder/
make 
make install

with x64_86-w64-mingw-gcc 作为默认编译器及其各自的库。


我首先尝试使用export CC=x64_86-w64-mingw-gcc 并运行上述命令。 它给了我一个错误

checking whether we are cross compiling: error... If you are cross compiling, use --host.

如何使用主机?值是什么,我应该传递给配置,以便该库是在 Msys2 环境中可用的二进制文件。

【问题讨论】:

  • MSYS2 已经有一个 MINGW 64 位 sqlite 包。您可以使用pacman -S mingw-w64-x86_64-sqlite3 安装它。或者如果你真的不想上网,你应该可以从repo.msys2.org下载你需要的包,然后用pacman -U filename安装它们。为什么需要自己编译,为什么需要从 Ubuntu 编译?

标签: cross-compiling configure msys2


【解决方案1】:

我不能说所有不同的架构,但对于 mingw 平台,我们可以

./configure --prefix=/path/to/my/folder --host=x86_64-w64-mingw32

您无需指定抄送。它将使用上述主机作为编译器的前缀,即使用x86_64-w64-mingw32-gcc。


不知道是不是真的,不过你可以自己试试,如果你的编译器是arm64-gcc那就试试把--host=arm64放上去


这解决了我的问题,我不认为这是通用解决方案,直到有人回答更通用的解决方案,我会将我的答案标记为正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多