基于msys2的GCC Linux交叉编译器

r55awzrz  于 2022-11-12  发布在  Linux
关注(0)|答案(1)|浏览(324)

我正在寻找一个交叉编译器,以编译为linux下的msys2环境。
我在找一个像x86_64-w64-linux-gcc的东西,但是我找不到。
我必须安装哪个软件包?

zazmityj

zazmityj1#

您将需要一台VM或Linux机器来测试生成的二进制文件,所以我首先只在一台机器上编译。
但是交叉编译也应该是可能的:

  • 在虚拟机中 Boot 您最喜欢的Linux发行版。
  • 安装您想要的库。安装g++以获得libstdc++,以及可能的其他基本库。
  • 将根目录/从VM复制到Windows计算机。

你只需要头文件和库文件,而不是所有的文件。你需要做一些实验来确定哪些目录可以安全地删除,哪些目录不能安全地删除。

  • 在Windows机器上安装Clang。安装LLD也是一个好主意(它是MSYS 2中的一个单独的包;或者,如果您使用的是正式的Clang二进制文件,它是与它们捆绑在一起的)。

我们使用Clang,因为它本质上是一个交叉编译器,也就是说,不需要单独的二进制文件来面向不同的平台,这与GCC不同。

  • 使用--target=x86_64-pc-linux-gnu --sysroot=path/to/root/directory编译Clang。

-fuse-ld=lld可能也是一个好主意。
字符串x86_64-pc-linux-gnu是通过在Linux计算机上运行clang++ --version获得的。
您可能需要更多的标志,但这应该是一个很好的起点。

相关问题