我正在寻找一个交叉编译器,以编译为linux下的msys2环境。我在找一个像x86_64-w64-linux-gcc的东西,但是我找不到。我必须安装哪个软件包?
x86_64-w64-linux-gcc
zazmityj1#
您将需要一台VM或Linux机器来测试生成的二进制文件,所以我首先只在一台机器上编译。但是交叉编译也应该是可能的:
g++
/
你只需要头文件和库文件,而不是所有的文件。你需要做一些实验来确定哪些目录可以安全地删除,哪些目录不能安全地删除。
我们使用Clang,因为它本质上是一个交叉编译器,也就是说,不需要单独的二进制文件来面向不同的平台,这与GCC不同。
--target=x86_64-pc-linux-gnu --sysroot=path/to/root/directory
-fuse-ld=lld可能也是一个好主意。字符串x86_64-pc-linux-gnu是通过在Linux计算机上运行clang++ --version获得的。您可能需要更多的标志,但这应该是一个很好的起点。
-fuse-ld=lld
x86_64-pc-linux-gnu
clang++ --version
1条答案
按热度按时间zazmityj1#
您将需要一台VM或Linux机器来测试生成的二进制文件,所以我首先只在一台机器上编译。
但是交叉编译也应该是可能的:
g++
以获得libstdc++,以及可能的其他基本库。/
从VM复制到Windows计算机。你只需要头文件和库文件,而不是所有的文件。你需要做一些实验来确定哪些目录可以安全地删除,哪些目录不能安全地删除。
我们使用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
获得的。您可能需要更多的标志,但这应该是一个很好的起点。