Cygwinを使用してWindowsでLinuxプログラムをコンパイルする方法
WindowsとLinuxは2つの非常に異なるシステムであるため、作成されたプログラムを移植するのは簡単ではないことがよくあります。特にGUIプログラムを扱う場合は、一方から他方へ。さまざまなクロスプラットフォームライブラリとSDKがありますが、移植性を考慮せずに作成されたネイティブプログラムは、移植が非常に困難です。
Linux on Windows用に作成されたプログラムのコンパイルと実行に関しては、Cygwinと呼ばれるソリューションがあります。 Cygwinプロジェクトは、Windows用の最も一般的なツールとコンパイラー(bashシェルとGNUコンパイラーチェーンを含む)のコレクションです。また、Linux固有のAPIを呼び出すプログラムをコンパイルできるように、互換性レイヤーを提供するライブラリも含まれています。 Cygwinはエミュレーターでも仮想マシンでもありません。また、最初に再コンパイルせずにLinuxバイナリをWindowsで実行することはできません。
Cygwinのインストールページにアクセスし、32ビットまたは64ビットのセットアップ実行可能ファイルをダウンロードします(使用しているWindowsのバリアントによって異なります)。セットアッププログラムを実行します。 [次へ]と[次へ]をもう一度クリックします(「インターネットからインストール」するには)。デフォルトのディレクトリは「C:\cygwin」です。必要に応じて変更できますが、変更する特別な理由がない限り、デフォルトが最適です。 [次へ]、[次へ]、[次へ]をもう一度クリックします。
Cygwinプロジェクトには、世界中にミラーサイトがあります。現在地に最適と思われるものを選択して、[次へ]をクリックします。次に、インストールするパッケージを選択する必要があります。 Windowsで単純なLinuxプログラムをコンパイルするには、CおよびC ++コンパイラを提供するGNUコンパイラチェーン(GCC)が必要です。
検索ボックスに「gcc」と入力し、パッケージのリストで「Devel」の横にある小さなプラス記号をクリックします。 「gcc-core」と「gcc-g++」を見つけて、それぞれの「スキップ」をクリックします。 「スキップ」という単語がバージョン番号に変わり、「ビン?」の「n/a」記号が表示されます。列がチェックボックスに変わります。検索ボックスに「make」と入力し、「Devel」の下に「make」を見つけます。 「スキップ」をクリックして、インストールのマークを付けます。 「wget」を検索し、「Web」からインストールするようにマークします。以下の例を作成するには、「libiconv;」も必要です。それを検索し、インストールのマークを付けます。
[次へ]をクリックします。インストーラーは、依存関係を解決するためにインストールする必要のある他のパッケージを確認します。 [次へ]をクリックして、推奨事項を受け入れます。
すべてのパッケージがダウンロードおよびインストールされたら、インストーラーが終了するまで最後の手順に従います。 「Cygwinターミナル」を起動して、Linuxのような開発環境に入ります。ターミナルでは、「dir」などのWindowsコマンドではなく、「ls」などのシェルコマンドを使用します。
WindowsでLinuxプログラムをコンパイルする方法を示すために、W3のHTML-XMLパッケージを使用します。何ができるかについては、コマンドラインからHTMLおよびXMLファイルを操作する方法を参照してください。
「wget」を使用してソースファイルをダウンロードします:
wget https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz
次に、アーカイブファイルを解凍します:
tar -zxf html-xml-utils-6.7.tar.gz
これで、ソースファイルは「html-xml-utils-6.7」ディレクトリにあります。そのディレクトリを入力してください:
cd html-xml-utils-6.7
ファイルをビルドする前に、「configure」シェルスクリプトを実行して、このビルド環境に適したMakefile(ビルド手順)を生成する必要があります。これは、ソースからパッケージをビルドする場合のLinux(およびCygwin)での一般的な手順です。
./configure
「構成」が完了したら、「make」を使用してビルドを開始できます。
make
ビルドは途中で失敗します。私は次に何をすべきかについて2つの考えを持っていました。別のプロジェクトに切り替えてそのソースからビルドするか、HTML-XML-utilsと戦うことができます。 CygwinでLinuxプログラムをコンパイルしようとすると、すべてがウォークインザパークになるわけではないことを示しているので、後者を選択しました。この特定の問題の解決策は簡単です。エラーメッセージは、リンカが「iconv」ライブラリを見つけることができないことを示しています。 linkコマンドをざっと見ると、ライブラリが指定されていないことがわかります。手っ取り早い解決策は、コマンドを手動で実行し、リンカーにlibconvを使用するように指示することです。これを修正する「適切な」方法は、Makefileなどを調べて、機能しない理由を見つけることです。
次のコマンドを実行し、最後に「-liconv」が含まれていることに注意してください。
gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o connectsock.o types.o tree.o genid.o dtd.o headers.o dict.o fopencookie.o -liconv
「hxindex.exe」ファイルがビルドされたら、もう一度「make」と入力して、ビルドの残りの部分を続行できます。 「make」が機能する方法は、ビルドされたものとビルドされていないものをチェックし、適切なポイントでビルドプロセスを続行することです。 「hxindex.exe」を手動で作成したため、「make」はリスト内の次のバイナリを続行します。
「make」が完了すると、html-xml-utils-6.7ディレクトリにすべての.exeファイルが作成されます。
Cygwinの使用に行き詰まった場合は、FAQとドキュメントを参照してください。それができない場合、プロジェクトには一連のメーリングリストがあります。上記の手順で問題が発生した場合は、以下のコメントセクションを使用してください。
-
Linux で起動可能な Windows 10 USB を作成する方法
Linux への Windows 10 オペレーティング システムのインストールは、複雑である必要はありません。実際、複雑さを避けたい場合は、起動可能な Windows 10 USB が必要です。この記事では、起動可能な Windows 10 USB を作成する正確なプロセスと、それを行う方法について説明します。始めましょう。 Linux で起動可能な Windows 10 USB を作成する 一般に、これには 2 つの大きな方法があります。最初の方法では、UEFI 互換のブータブル ディスクを作成できます。マウント プロセスを開始する前であっても、最初に必要なのは Windows ISO
-
リモート アクセスできる複数のコンピュータで Windows 10 のスタートアップ プログラムを管理する方法
スタートアップ プログラムは、コンピュータの起動時に自動的に起動するアプリケーションです。この機能は、Microsoft サービスと既定のアプリケーションの場合に役立ちます。ただし、コンピュータの電源を入れると、多くのサードパーティ アプリケーションが起動する傾向があることがわかっています。これは、ウイルス対策プログラムなどの特定のプログラムにとっては重要に思えるかもしれませんが、ほとんどのプログラムにとっては不要です。 スタートアップ リストに多くのプログラムが追加されていると思われる場合、OS リソースと共にアプリケーションを起動するのに時間がかかるため、コンピュータの起動が通常より