0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WindowsでMakeFileが動かなかった時にやったこと

Last updated at Posted at 2022-12-22

前提

  • パッケージマネージャ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でパスを通すのも忘れずに
何かいい方法ありますか?

動いた

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?