Entry

MinGW MSYS で間抜けにハマるの巻

2010年12月03日

手元のノートパソコンにある開発環境を軽くしたくて,MinGW をメインに使い始めたんですけれど,間抜けなところで1日ハマってたのでメモ。

テスト用に書いたこんなコード。MinGW shell 内で実行してもコンソールに何も表示されません。ちなみに cmd.exe 内ではちゃんと動きます。

#include <iostream>

int
main(int argc, char* argv[]) {
  std::cout << "hello" << std::endl;
  return 0;
}

Makefile はこんな感じ。

SRC=test.cpp
OBJ=$(SRC:.cpp=.o)
EXE=test.exe

CXX=g++
CFLAGS=-Wall -O3
## -mwindows               : linker option for Windows GUI application
## -Wl,-enable-auto-import : suppress auto-import warnings on GCC 4.5.0
LDFLAGS=-Wl,-enable-auto-import
RM=rm

%.o: %.cpp
    $(CXX) $(CFLAGS) -o $@ -c $<

.PHONY : all
all: $(EXE)

$(EXE): $(OBJ)
    $(CXX) $(OBJ) $(LDFLAGS) -o $@

.PHONY : clean
clean:
    -$(RM) $(OBJ)

実行結果。

aian@netbox ~/work
$ test

aian@netbox ~/work
$

さて……なぜ hello と言ってくれないのか……。お分かりの人はもう分かってますね。間抜けなので答えは書きません。最近 DOS プロンプトに慣れてしまってたから,てっきりカレントにパスが通っているとばかり思ってました。気楽に test.exe とか作っちゃいけないなぁ……。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN