前提
- パッケージマネージャscoopをインストール
- mingwを
scoop install mingw
でインストール -
gcc -v
が動くことを確認済み
avrアセンブリのコンパイラavraのビルドとインストールを行うときに人様のコードのビルドが初めてだったのでいろいろ躓いた
他のソースをビルドする時も役に立つ気がしたので記事にした
WSLを使えば楽という主張は分かるがあくまで素のwindowsで頑張るという話
OS
これはavraのmakefileの構造がそうだったというだけの話
変数OSを参考に子のmakefileを切り替えていたので書き換えが必要だった
OS=linux
↓
OS=mingw32
これはあくまでavraの一例
つまり
OSとかユーザー側で書き換えの必要な変数がないか確認するべき
CC=gcc
次にこんなエラーが出た
createProcess(NULL, cc 略 ) failed.
make: *** <builtin>: main.o
make (e=2): 指定されたファイルが見つかりません。
ファイルというからにはソースファイルが抜けているのかと思っていろいろ試したがすべて外れ
気になったのがccというコマンド
このコマンドが記載された行はmakefileには存在しなかった
調べたところ指定のないファイルは自動的に変数CC
に格納されたコマンドを実行する模様
そしてこの変数CC
のデフォ値はcc
そんなのあったかとpowershellから確認したらなかった
cc
は一般的なcコンパイラのコマンド
調べたところgcc
との違いはほぼ名前だけの模様
gcc
はあらかじめインストールしてあるので
CC=gcc
を先頭に書き足して解決
つまり
- コンパイラがインストールされていること
- コンパイラのコマンドがちゃんとmakeで呼ばれていること
- 「指定されたファイルが見つかりません。」言われたら存在しないコマンドが呼ばれていないか
を確認するべき
make install ?
これはできた実行ファイルを/usr/local/bin
とかプログラム格納用のディレクトリに移動するコマンドとかが走る
ここでinstall
とかのunixコマンドがあると走らない
コンパイル時に-DDEFAULT_INCLUDE_PATH
で/usr/local/include
が入っていたうえこの先この手のことがまたあると面倒なのでおとなしくC:/usr/local/bin
を作成して頑張って読んで自分で移動しました……
C:\usr\local\bin
でパスを通すのも忘れずに
何かいい方法ありますか?