centos7でクロスコンパイルしようとしています。 (私はその環境でjenkinsを実行しました。)Webには古いmingwドキュメントがたくさんあります。明らかに答えがあるようだここしかし消えた。クロスコンパイルステップの議論ここ。私は一つ作ることができますsudo yum groupinstall -y パッケージ名しかし、さまざまな投稿やフォーラムで見たように、私が試したことは何も機能しませんでした(MinGW-64 mingw-64 mingw64、MinGW64、またはMinGWクロスコンパイラ)。また、ソースコードをダウンロードしようとしましたが、さまざまな前提条件が欠落していてそれを取得しようとしましたが、存在しないか間違ったバージョンであったため、成功しませんでした。
答え1
とともにEPELリポジトリがインストールされました以下をインストールできますmingw-w64
。
yum install mingw64-gcc
答え2
ついに動作するコンパイルされたバイナリを見つけました(私の目的には十分です)。これはLinux用の64ビットバイナリです(事前にビルドされ、DLのみがあり、解凍してtarをボックスにアップロードします)。 /opt/mingw64ディレクトリを作成し、このディレクトリからファイルを抽出する必要があります(sudo tar -xvf〜/mingw-w64-bin_x86_64-linux_20131228.tar)。 https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/ http://www.blogcompiler.com/2010/07/11/compile-for-windows-on-linux/
コンパイラはgccの代わりに/opt/mingw64/bin/x86_64-w64-mingw32-gccです。その理由は、PATH環境に複数のコンパイラがあっても正しいgccを選択できる必要があるからです。
答え3
EFIバイナリ接続をサポートするためにmingw64-binutilsを探している場合は、別のより簡単な方法があります。
2016年9月、FedoraはEFI接続に必要なi386pepをサポートするためにbinutilsのディストリビューションgnuローダーをパッチしました。だから私がしたのは、そのソースコードを取得してパッチを抽出し、それをC7で使用したい最新のbinutilsに適用することでした。さらに助けが必要な場合は、これを何度も実行しました。また、この方法でパッチされたbinutilsの動作するバイナリパッケージもあります。構築は簡単で高速で、テストも簡単です。
C8で見られる内容は次のとおりです。
ld -V
GNU ld version 2.30-79.el8
Supported emulations:
elf_x86_64
elf32_x86_64
elf_i386
elf_iamcu
i386linux
elf_l1om
elf_k1om
i386pep <--- EFI support