如何为 Windows 中的 mingw/msys2 交叉编译 Ubuntu 中的库?
How to cross compile a library in Ubuntu for mingw/msys2 in Windows?
我有一个需要在 msys2 环境中使用的 sqlite 库,它无法访问互联网。我想在 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 环境中使用的二进制文件。
我不能说所有不同的架构,但对于 mingw 平台,我们可以
./configure --prefix=/path/to/my/folder --host=x86_64-w64-mingw32
您无需指定抄送。它将使用上述主机作为编译器的前缀,即,将使用 x86_64-w64-mingw32-gcc
.
不知道是不是真的,你可以自己试试,如果你的编译器是arm64-gcc
那就试试把--host=arm64
这解决了我的问题,我不认为这是通用的解决方案,在有人回答更通用的解决方案之前,我会将我的答案标记为正确的。
我有一个需要在 msys2 环境中使用的 sqlite 库,它无法访问互联网。我想在 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 环境中使用的二进制文件。
我不能说所有不同的架构,但对于 mingw 平台,我们可以
./configure --prefix=/path/to/my/folder --host=x86_64-w64-mingw32
您无需指定抄送。它将使用上述主机作为编译器的前缀,即,将使用 x86_64-w64-mingw32-gcc
.
不知道是不是真的,你可以自己试试,如果你的编译器是arm64-gcc
那就试试把--host=arm64
这解决了我的问题,我不认为这是通用的解决方案,在有人回答更通用的解决方案之前,我会将我的答案标记为正确的。