上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
開発/toolchain/MinGW
のソース
資料室
開発
/
toolchain
/
MinGW
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
開発/toolchain/MinGW
へ行く。
« Prev
*MinGWとは [#w167896a] MinGW(Minimalist GNU for Windows)は,GNUの開発ツール(gcc,g++,リンカ,アセンブラ,デバッガ,...)のWindows移植版。~ MinGWはWindows APIのためのヘッダファイルを含んでおり,フリーのコンパイラ・セットであるGCCを,Windowsアプリケーションの開発のために利用するための開発ツール。~ コマンドラインから使用することも,各種IDEへ統合することも出来る。~ またMinGWのシェル環境というべきMSYS(minimal system)という,軽量のUNIX風シェル環境(Posixエミュレーション)を持っている。~ MSYSには端末エミュレータや開発ツールのautoconfを実行可能にするためのPOSIXコマンド群とかが含まれている。~ 標準はたぶんMSYSを使うのだろうが,EclipseやWindowsのコマンドプロンプト上でもMinGWを利用することができる。~ MinGWでコンパイルしたプログラムは,Windowsの標準Cライブラリ(msvcrt.dll)を利用するため,他にGPLなライブラリを使用していないかぎり,再配布の制約は無いことになる。またWindowsのネイティブプログラムとなる。~ MinGWとMSYSのパッケージは,Cygwinからフォークして誕生した。~ CygwinはWindows上に完全なPOSIX環境を提供する事を目的にしているが,それに対してMinGWはフリーのコンパイラと各種ツールのみ(POSIX APIは持っていない)を提供していて,MSYSはCygwinと同様なPosixエミュレーションを持ったPOSIXツール類を提供している。 MinGWはクロス開発環境としても利用でき,これによりマルチプラットフォームで利用可能になっている。~ LinuxマシンでもMinGWを使うことでWindowsアプリを開発することが出来る。~ MSYS・MinGWはフリーソフトウェアで,Win32APIを利用するためのヘッダファイルもパブリックドメインで提供されており,GNUツールのWindows移植版はGPLになっている。~ MSYSとMinGWを両方合わせてもファイル容量は比較的小さいので,USBペンドライブのようなリムーバブル・メディアに入れて持ち運んで利用することもできる。~ Windowsのレジストリなどを全く使用しないので,インストールも削除も簡単に行える。~ 注意することとして,''MinGWはWindowsで動作する32bitアプリケーションを作成のためのツールで,64bitアプリケーションは作成できない。''~ ''64bitアプリケーションを作成したい時は,MinGWからフォークしたMingw-w64がある。'' WindowsマシンでMinGWを利用する場合,MinGW(32bitアプリ開発用)とそこからフォークしたMingw-w64(32bit/64bitアプリ開発用)があるので選択して使用する。~ また,MSYSをより新しくしたMSYS2がリリースされている。~ * MSYS/MinGWのインストール [#q90c4ac2] ''MSYSとMinGWは共に古いパッケージなのと,32bitアプリのみの作成ができる開発ツールということに注意する。''~ 64bitアプリを作成したい場合は,後述の''MinGW-w64''をインストールする。~ まだMSYS/MinGWをインストールしてない場合は,''より新しい[[MSYS2/MinGW-w64をインストール>./#xde2a8b1]]したほうが良い。''~ 理由は以下のような理由がある。~ - MSYS2はMSYSより新しい~ - MSYS2はパッケージ管理ツールpacmanでインストールするパッケージを管理できる~ - 他のツールとの互換性~ -- Git for WindowsはMSYS2/MinGW-w64を使用している~ -- Rubyの一部のgemをコンパイルするためにDevkitを使うが,DevkitはMSYS2/MinGW-w64を使っている~ ** MSYS/MinGWのインストール(32bit版) [#tc16c4db] http://sourceforge.net/projects/mingw/ のページにある緑色のDownloadから''mingw-get-setup.exe''をダウンロードする。(09/07/2012時)~ そのダウンロードしたインストーラーを実行する。~ -Repository Catalogues~ Use pre-packaged repository cataloguesを選択する。 -インストールするディレクトリ先の設定~ デフォルトは,「C:\MinGW」。スペースとか日本語は使わないようにする。 -Select Components C Compier,C++ Compiler,MSYS Basic System,MinGW Developer Toolkit (MSYSに含まれる) をマークする。コンパイルをするだけなら,C Compier,C++ Compilerだけでもいいと思う。FORTRANやAdaもあります。~ -Installを押して,インストールを実行する。 Finishで終わり。 ちなみに,GCCのバージョンは,6.3.0です。 //**MinGWのインストール(64bit版) [#r0221182] // //32/64bit共用のWindows向けMinGWもある。まだインストーラ形式での配布は開始されていないが,zipおよびtar+gzipで書庫化されたパッケージを利用すれば,手動でインストールできる。 // //-配布サイトから,書庫化パッケージをダウンロード http://sourceforge.net/projects/mingw-w64/ のページから,最新版のmingw-w64-bin_x86_64-mingw_20111101_sezero.zipをダウンロードする(09/07/2012時点) //-C:\MinGWあたりに解凍する~ //mingw-w64-bin_x86_64-mingw_20111101_sezero.zipをC:\MinGWあたりに解凍すれば,インストール自体は終了。 //-シェルなど必要な一式が同梱された「MSYS」をインストールする~ //http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe///download からMSYSをダウンロードして実行してインストールする。~ //途中でMinGWのパスを聞かれるので,C:/MinGWを入力する。 //**パスの設定 [#c1e3bb84] //ツールとして実行できるようにpathを通しておきます。~ //-コントロール パネル>システムとセキュリティ>システムをクリックし,システムの詳細設定を開く~ //-詳細設定タブの「環境変数」をクリック~ //-システム環境変数の「Path」を選択して「編集」をクリック~ //-pathを設定する~ //インストール時にデフォルトディレクトリ「C:\MinGW」にした場合は,;C:\MinGW\binをpath環境変数に追加する。 // //この後,コマンドプロンプトを起動し,「gcc --version」と実行したら,gccの情報が表示されればOK。 **他のMSYSパッケージの追加 [#uab044b1] コマンドプロンプトで, mingw-get list | less とすると,追加できるパッケージを見ることが出来る。 また,MinGW Installerでパッケージの更新も出来る。 * MSYS2/MinGW-w64のインストール [#xde2a8b1] MSYS2は上記の古いMSYSをバージョンアップした,新しいPOSIX環境(Posixエミュレーション)。~ MinGW-w64は32bitと64bitのどちらのアプリケーションも作成可能な[[Gnu GCC>https://gcc.gnu.org/]]開発ツール(Windowsネイティブアプリケーション)で,MinGWのGCCのバージョンもより新しくなっている。~ MSYS2とMinGW-w64はそれぞれ別々にインストールすることが出来る。~ なので既にインストールしてある古いMSYSをそのまま使用して,MinGW-w64のみをインストールして64bitアプリの開発をするといった事もできる。~ また,MSYSの代わりに[[MSYS2を新たにインストール>./#cb7537f6]]して,MSYS2のパッケージ管理ツールpacmanを使用してMinGW-w64をインストールする事もできる。~ ** MinGW-w64のみをインストール(64bit版/32bit版) [#de943ec9] 従来のMSYSをインストールしていてその環境を使って64bitアプリを開発したいなどの理由でMinGW-w64をインストールしたい場合は,MinGW-w64のみをインストールする。~ MinGW-w64を使って32bitと64bitのコードの両方のプログラムを出力するようにするには,32bitコードを出力するコンパイラと64bitコードを出力するコンパイラの両方をインストールして切り替えて利用することになる。~ ''MSYS/MinGWがインストールされていない場合は,まず[[MSYS2をインストール>./#cb7537f6]]後にパッケージ管理ツールでMinGW-w64をインストールするようにしたほうがスムーズにインストールできる。''~ この場合は,MinGW-w64のみをインストールはしないようにする。~ *** MinGW-w64のみをインストールする [#zcdaba26] ''MinGW-w64のみをインストールするには'', [[公式サイト>http://sourceforge.net/projects/mingw-w64]]から,インストーラの''mingw-w64-install.exe''をダウンロードする。~ ダウンロードしたインストーラを実行すると,インストールが始まる。~ Settings画面で,インストールするGCCのバージョン,アーキテクチャ,スレッドライブラリの種類,例外機構の選択が出来る。 - Version:インストールしたいGCCのバージョンを選択。(特に理由がない場合は最新版で良いと思う。)~ - Architecture:ターゲットシステムのアーキテクチャーを選択する。~ -- i686(32bit)かx86_64(64bit)を選択する。~ - Thread : スレッドモデルの選択。posixかwin32を選択する。(特に理由がないのであればposixで良いと思う。)~ -- posix:POSIXスレッド。Unix,Linux,Windowsをサポートしている。~ -- win32:WIN32スレッドのみをサポートしている。 win32はWindowsネイティブ関数を使っていて速いのだが,C++ 11以降のthread,mutex,futureが使えなくなる。 - Exception:例外処理ハンドリングの選択。アーキテクチャーにより以下を選択できる。~ -- i686~ --- dwarf:DWARF~ --- sjlj:SetJump/LongJump~ C++標準ライブラリを使用した例外処理 -- x86_64~ --- seh:Structured Exception Handling~ Windowsネイティブな例外処理。(おすすめ)~ - Build Version:ビルドバージョンの選択。(特に理由がなければ最新版で良いと思う。)~ Architectureを''x86_64''にすると64bit出力するコンパイラが,''i686''にすると32bit出力するコンパイラがインストールされる。 インストール先は,デフォルトではC:\Program Files以下にインストールされるので,''C:\MinGW64''のように,短いパスになるように変更してインストールするようにします。 コンパイラの本体は, - 64bit出力コンパイラの場合~ [インストールしたディレクトリ]\mingw64~ - 32bit出力コンパイラの場合~ [インストールしたディレクトリ]\mingw32~ にインストールされる。 //環境変数のpathに,インストールしたディレクトリ\binを追加しておく。この時に64bitか32bitのコンパイラを選択して,これらのディレクトリをpathに追加しておく。 ** MSYS2をインストールしてMinGW-w64を追加インストールする [#cb7537f6] MSYS2はMSYSをより新しくしたPOSIX環境(Posixエミュレーション)のツール類をパッケージ化してリリースされている。~ MSYSと基本的には違いは少ないが,含まれているツール類がより新しいバージョンになっている。~ もし既にMSYSを使用している場合でも,''MSYSからMSYS2に移行したほうが良い''と思う。~ MSYS2をインストールするには,[[公式サイト>https://www.msys2.org/]]からインストーラーをダウンロードする。~ %%32bit版はmsys2-i686-20190524.exeで,64bit版はmsys2-x86_64-20190524.exeになる。自分のPCに合わせて好きな方を選んでダウンロードする。%%~ 32bit版は2020/05/17からリリースされなくなった。64bit版のインストラーは''msys2-x86_64-yyyymmdd.exe''になっている。~ ダウンロードしたインストーラーをダブルクリックして,インストールを行う。~ インストール場所は,''C:\msys2 とか C:\msys64''とか,とにかく短くなるようにする。~ 実は[[Git for Windows>https://gitforwindows.org/]]をインストールすると最小版のMSYS2もインストールされる。~ というかGit for WindowsがMSYS2環境を使用して動作しているので,Git for Windowsをインストールしている場合は,同じMSYS2がダブってインストールされることになる。~ MSYS2のパッケージ管理ツールからGitをインストールすることも出来るので,この場合はGit for Windowsをインストールする必要はない。~ *** パッケージ管理ツールからMinGW-w64をインストール [#w49cc8c0] MSYS2がインストールできたら,プログラムメニューからMSYS2の''MSYS Shell''をクリックして起動する。~ コマンドプロンプトに似た画面(Bashシェル)が表示されるので,以下のようにしてパッケージ管理情報を更新する。~ この時,処理が完了してもプロンプトには戻らないので,強制的にXボタンを使ってウィンドウを閉じます。~ $ pacman -Syu : : 警告: terminate MSYS2 without returning to shell and check for updates again 警告: for example close your terminal window instead of calling exit 再度,MSYS2の''MSYS Shell''を起動して,同じコマンドをもう一度実行します。 $ pacman -Syu 更新パッケージがあればリストアップされるので,yを入力してパッケージを更新します。~ そして, $ pacman -Suu とします。 次にパッケージ管理ツールpacmanを使って,MSYS2にいくつかの開発用ツールをインストールする。~ $ pacman -S base-devel そして,MinGW-w64(64bitアプリを作成できるtoolchain)をインストールする。~ $ pacman -S mingw-w64-x86_64-toolchain 必要であれば,MinGW-w64(32bitアプリを作成できるtoolchain)をインストールする。 > pacman -S mingw-w64-i686-toolchain これらのインストール場所は以下のようになる。(MSYS2をC:\msys64にインストールした場合) c:\msys64 : MSYS2 (64bit) c:\msys64\mingw64 : MinGW-w64 (64bit) c:\msys64\mingw32 : MinGW-w64 (32bit) MinGW-w64のインストールはこれでOKです。~ MSYS2 MinGW 32-bitをクリックすれば32bit MinGWが使えて,MSYS2 MinGW 64-bitで64bit MinGWが使用出来るようになっています。 * 環境変数pathの設定 [#e17bd6be] MSYS/MinGWまたはMSYS2/MinGW-w64をインストールしたら,Windowsのコマンドプロンプトからも開発ツールとして実行できるように環境変数のpathに追加しておきます。 - コントロール パネル>システムとセキュリティ>システムをクリックし,システムの詳細設定を開く~ - 詳細設定タブの「環境変数」をクリック~ - システム環境変数(全ユーザーで使用する場合)またはユーザーの環境変数の「Path」を選択して「編集」をクリック~ - MSYS/MinGWまたはMSYS2/MinGW-w64を追加する~ 以下のように環境変数を設定する。~ ''MSYS/MinGWの場合,''~ MINGW_HOME=C:\MinGW MSYS_HOME=C:\MinGW\msys\1.0 // LANG=ja_jp.SJIS // LESSCHARSET=utf-8 ''MSYS2/MinGW-w64の場合,''~ MINGW_HOME=C:\msys64\mingw64(or mingw32) MSYS_HOME=C:\msys64\usr MSYS2_PATH_TYPE=inherit // LANG=ja_JP.UTF-8 // LESSCHARSET=utf-8 のようにする。~ MSYS2_PATH_TYPE=inheritは,MSYS2 MSYS,MSYS2 MinGW 32bit,MSYS2 MinGW 64bitでbashシェルを起動した時にWindowsの実行PATHをそのまま使う設定。~ //Git for Windowsで日本語が文字化けしないようにLANG変数をja_JP.UTF-8(MSYSの場合はja_jp.SJISにトリックしてる。)とLESSCHARTSET変数をutf-8に設定します。~ //MSYSでのlessコマンドはデフォルトがsjis(dos)のため,utf-8に変更しないとGit for Windowsで日本語文字が文字化けする。MSYS2のlessコマンドはデフォルトがutf-8になっているので設定する必要はないが設定しても問題はない。~ ~ そして,ユーザー環境変数(おすすめ)かシステム環境変数のpathに, %MINGW_HOME%\bin;%MINGW_HOME%\share;%%MSYS_HOME%\local\bin;%%MSYS_HOME%\bin; を適当な場所に追加する。~ この後,コマンドプロンプトを起動して「gcc --version」と実行したら,gccの情報が表示されればOK。 D:\home\ueno> gcc --version gcc (MinGW.org GCC-6.3.0-1) 6.3.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MinGWをインストールした場合は,このように表示される。 MinGW-w64の場合は以下の表示される。~ D:\home\ueno> gcc --version gcc.exe (Rev3, Built by MSYS2 project) 13.2.0 Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * MSYS/MSYS2の起動と環境 [#bf026ee2] スタートメニューから「MinGW Shell」または「MSYS2 MSYS,MSYS2 MinGW 32bit,MSYS2 MinGW 64bit」で,コンソール(シェルはBash)が動作する。~ Linux(Unix)と同じPOSIX環境が使用でき,Bashシェルのコンソール(Terminal)が使えるようになる。~ この時,カレントディレクトリはユーザーの環境変数HOMEに設定したディレクトリになる。~ 環境変数HOMEを設定していない場合は,C:\MinGW\msys\1.0\home\(ユーザ名)というディレクトリが作成されて,ここがカレントディレクトリになる。~ なので,''環境変数HOMEによく自分が使う作業ディレクトリを設定しておくと良い。'' ** ロケール環境 [#scdb098c] MSYSの場合はPosixコマンド類の日本語コードは,''デフォルトがSJIS''になっている。~ しかもMSYSに含まれているコマンドは,ロケール設定に関わらず''SJIS''になるようだ。~ $ locale LANG=ja_JP.SJIS LC_CTYPE="ja_JP.SJIS" LC_NUMERIC="ja_JP.SJIS" LC_TIME="ja_JP.SJIS" LC_COLLATE="ja_JP.SJIS" LC_MONETARY="ja_JP.SJIS" LC_MESSAGES="ja_JP.SJIS" LC_ALL= $ echo $LESSCHARSET dos $ echo $OUTPUT_CHARSET sjis MSYS2の場合はPosixコマンド類の日本語コードは,''デフォルトがUTF-8''になっている。~ MSYS2に含まれているコマンドは,ちゃんとロケール設定を反映した動作をする。~ $ locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_ALL= $ echo $LESSCHARSET dos $ echo $OUTPUT_CHARSET dos なので,''MSYSとMSYS2では使うコンソールのローケール設定に注意する''。~ コンソール(Terminal)の表示とロケール等が一致していないと,コンソール(Terminal)表示で日本語が文字化けする。~ さらにLESSCHARSETとOUTPUT_CHARSET環境変数もうまい具合に設定する必要がある。~ - OUTPUT_CHARSET~ アプリケーションがglibcを使っている場合,メッセージカタログを出力する際の文字コードを指定する環境変数。 - LESSCHARSET~ lessコマンドがファイルを表示するときに使用する文字コード。 [[Git for Windows>/開発/バージョン管理システム/git/Gitのインストール#beece8d9]]をインストールして併用する場合は,''git''コマンドがUTF-8を想定している(MSYS2を使っているから)ので,実行するコンソール環境はUTF-8で使用しないと日本語が文字化けする。~ このため,Windowsの''コマンドプロンプト''でGit for Windowsやmanコマンドを使用する時は,BATファイルなどでLAN環境変数をja_JP.UTF-8に一時的に変更して実行する。~ ''git.bat''~ @echo off setlocal :SETLESS set LANG=ja_JP.UTF-8 :CMDEXE git.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 endlocal bashを使っている場合は,以下のようなaliasにしておく。~ alias git='LANG=ja_JP.UTF-8 LESSCHARSET=utf-8 git' ** MSYS2の環境変数 [#s500c3f8] MSYS2関連の主な環境変数には以下がある。~ 細かい挙動については,msys2_shell.cmd(バッチファイル)の内容を確認する。~ - MSYS~ ''ls -s''等のリンクに関する挙動を決める。~ この設定は,''msys-2.0.dll''を利用するすべてのプログラムに影響する。 winsymlinks:lnk を指定すると,シンボリックリンクの作成はWindowsショートカットの作成となる。~ この環境変数が存在しない場合,シンボリックリンクを作成しようとするとファイルがコピーされるようになる。~ - MSYSTEM~ MINGW64を指定すると,MSYS2/MinGW-w64の64bit環境向けの環境変数PATHを構成する。~ msys2_shell.cmdの''-mingw64''オプションに対応している。詳細は,/etc/profileを参照。~ - MSYS2_PATH_TYPE~ ''MSYS2_PATH_TYPE=inherit''とすると,シェル環境変数PATHの末尾にWindows環境変数PATHの項目を追加するように設定される。~ msys2_shell.cmdの''-full-path''オプションに対応している。~ AnacondaのPython含め,Windowsネイティブのコマンドを利用するにはこれを使うのが便利である。~ ''MSYS2_PATH_TYPE=strict''とすると,Windowsの環境変数PATHを継承しない。 詳細は/etc/profileを参照。~ - CHERE_INVOKING~ ''CHERE_INVOKING=1''とすると,Bashログイン時に現在のディレクトリを変更しない(つまり,HOME環境変数の場所に移動しない)。~ msys2_shell.cmdの''-here''オプションに対応している。~ - MSYS2_ARG_CONV_EXCL~ MSYS2はWindowsネイティブなコマンドを実行するとき,コマンド自身のパスとその引数に見つかった絶対パスをWindows形式(ドライブ文字付き)の絶対パスに変換する。~ コマンド引数に指定したパスがこの値と前方一致する場合,この変換処理の対象から除外する。~ 複数指定する場合は,セミコロンで区切る。~ MSYS2コンソールからWindowsのプログラムを別ウィンドウで開く場合は,''START''コマンドを使う。~ ** Windowsのディレクトリとの対応 [#u4ccc052] *** MSYS/MinGWをインストールした場合 [#c96914fc] ''C:\MinGW\msys\1.0\etc''に,''fstab''というファイルを作成する。(C:\MinGWにインストールした場合) c:/mingw /mingw このようにすると,ShellであるBashコンソールを開いた時に, / は,C:\MinGW\msys\1.0 /usr は,/と同じでC:\MinGW\msys\1.0 /home/(ユーザー名) は,通常だとC:\Documents and Settings\(ユーザー名) /c は,C:\ /mingw は,C:\MinGW (/etc/fstabでマウントされている。) のようになります。 Bashを起動して確認してみる。 $ mount C:\Users\yueno\AppData\Local\Temp on /tmp type user (binmode,noumount) C:\MinGW\msys\1.0 on /usr type user (binmode,noumount) C:\MinGW\msys\1.0 on / type user (binmode,noumount) C:\mingw on /mingw type user (binmode) c: on /c type user (binmode,noumount) d: on /d type user (binmode,noumount) e: on /e type user (binmode,noumount) f: on /f type user (binmode,noumount) g: on /g type user (binmode,noumount) s: on /s type user (binmode,noumount) u: on /u type user (binmode,noumount) x: on /x type user (binmode,noumount) y: on /y type user (binmode,noumount) z: on /z type user (binmode,noumount) このように,Windowsでの各ドライブなども全て/(ルート)からのパスでアクセスできるようになっている。 $ ls / bin etc include lib local m.ico msys.bat msys.ico postinstall sbin share var *** MSYS2/MinGW-w64をインストールした場合 [#v2154497] ''C:\msys64\etc''に''fstab''というファイルがあるので編集する。(C:\msys64にインストールした場合) c:/msys64/mingw64 /mingw64 このようにすると,ShellであるBashコンソールを開いた時に, / は,C:\msys64 /usr は,/と同じでC:\msys64 /home/(ユーザー名) は,通常だとC:\Documents and Settings\(ユーザー名) /c は,C:\ /mingw64 は,C:\msys64\mingw64 (/etc/fstabでマウントされている。) のようになります。~ このようにすると,32bitのgcc(mingw32)を使う場合は, c:/msys64/mingw32 /mingw32 とfstabファイルを書き換えないとダメ。 Bashを起動して確認してみる。 $ mount c:/msys64/mingw64 on /mingw64 type ntfs (binary,noacl,posix=0) c:/msys64/msys64 on / type ntfs (binary,noacl,auto) c:/msys64/usr/bin on /bin type ntfs (binary,noacl,auto) C: on /c type ntfs (binary,noacl,posix=0,user,noumount,auto) D: on /d type ntfs (binary,noacl,posix=0,user,noumount,auto) E: on /e type ntfs (binary,noacl,posix=0,user,noumount,auto) S: on /s type ntfs (binary,noacl,posix=0,user,noumount,auto) U: on /u type smbfs (binary,noacl,posix=0,user,noumount,auto) X: on /x type smbfs (binary,noacl,posix=0,user,noumount,auto) Y: on /y type smbfs (binary,noacl,posix=0,user,noumount,auto) Z: on /z type smbfs (binary,noacl,posix=0,user,noumount,auto) このように,Windowsでの各ドライブなども全て/(ルート)からのパスでアクセスできるようになっている。 $ ls / InstallationLog.txt components.xml maintenancetool.dat mingw32 mingw64 msys2.exe msys2_shell.cmd test.bat var autorebase.bat dev maintenancetool.exe mingw32.exe mingw64.exe msys2.ico network.xml tmp bin etc maintenancetool.ini mingw32.ini mingw64.ini msys2.ini proc usr なので,''/etc/fstab(C:\msys64\etc\fstab)''に/mingw64のマウントポイントを追加しないで,''/etc/profile(C:\msys64\etc\profile)''を修正したほうが良い気がする。~ この場合は,以下のようにする。~ MINGW32) MINGW_MOUNT_POINT="${MINGW_PREFIX}" PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" ↓ PATH="/c/msys64/mingw32/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" : : MINGW64) MINGW_MOUNT_POINT="${MINGW_PREFIX}" PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" ↓ PATH="/c/msys64/mingw64/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}" に,MinGW-w64のgccの場所を実行パスを設定している。こうすると,32bit gccを使う場合と64bitのgccを使う場合とを,起動BATファイルで選択できるようになる。 ** カスタマイズ [#f5981fd5] ''/usr/local''がないので,必要であれば作成する。標準的なUNIX/Linuxでは,ユーザーが追加したコンポーネントなどはデフォルトでここに入るのが普通。 $ mkdir /usr/local インストール直後のカレントディレクトリつまり$HOMEは,環境変数HOMEが設定されていない場合/home/<ユーザー名>が自動でセットされる。~ 環境変数HOMEを作成していればその場所になる。~ /etc/profile(C:\MinGW\msys\1.0\profile)ファイルの最後に以下のように追加しても良い。~ ''/etc/profile''~ export WORK=/c/home/yuji cd $WORK * アンインストール [#df856700] MSYS/MinGWをアンインストールしたい時などは,コントロールパネルのプログラムと機能からMinGWをアンインストールできる。~ その後インストールしたディレクトリを削除する。~ MSYS2/MinGW-w64のアンインストールも同様に,コントロールパネルのプログラムと機能でアンインストールできる。~ * 他のパッケージの追加 [#i0accb63] MSYS/MinGWでパッケージを追加する場合は,コマンドプロンプトで, mingw-get list | less とすると,追加できるパッケージを見ることが出来る。 MSYS2/MinGW-w64の場合は,パッケージ管理ツールpacmanでパッケージの追加・更新などが出来る。~ pacman -h ヘルプ pacman -<option> -h -<オプション>のヘルプ pacman -Sy 最新のパッケージデータベースをダウンロードする pacman -Su パッケージのアップデート(事前にupdate-coreが必要) pacman -Syu パッケージのアップデート(-Syと-Suを同時に行う) pacman -S [package] パッケージをインストールする pacman -R [package] パッケージが必要としていたものを残したままアンインストールする pacman -Rs [package] パッケージと必要としていたものもアンインストールする pacman -Ss [pattern] パッケージを検索 pacman -Sl | grep [pattern] パッケージの検索2(インストール済み) pacman -Sg パッケージグループの一覧を表示 pacman -Qqe インストール済みのパッケージ一覧を表示 pacman -Si [package] 詳しい情報を表示 pacman -Sc 使っていないキャッシュを削除 * Makefileの雛形 [#ya20c23f] プログラム開発時には,実行ファイルを作成する場合にmakeを使うと便利。makeは標準でMakefileと呼ばれるファイルを使用するが,その雛形を作っておいてそれをコピーして使用するのが楽。~ Makefileの雛形:&ref(Makefile); これをMakefileとしてコピーして使うと楽かも。~ まあ, [[Autotools>/開発/autotools]] や [[CMake>/開発/CMake]] を使ったほうが便利。
« Prev
開発/toolchain/MinGW のバックアップ一覧
開発/toolchain/MinGW のバックアップソース(No. All)
1: 2012-09-07 (金) 06:13:02
yuji
現: 2020-12-26 (土) 15:07:53
yuji
Attached file: Makefile
Counter: 1997, today: 2, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ