私の質問に答えてくれてありがとう。これに関する投稿をチェックするのに何時間も費やしましたが、まだ助けが必要です. 私に辛抱してくれてありがとう:)
Widows マルチメディア API を呼び出す midi 関数のクラスがあります。
コマンドラインでクラス Midf.h を単独でコンパイルすると、コンパイルされて動作します。
g++ -Wall Midf.h Midf.cpp midftest.cpp -lwinmm -o midftest2.exe
これらの関数をより大きなプログラムに含めるためのメイクファイルを作成しました。
Midf.o を構築するための私のレシピは次のとおりです。
Midf.o: Midf.cpp Midf.h
g++ -Wall Midf.cpp -lwinmm
この時点で、次のエラーが表示されます。
g++ -Wall Midf.cpp -lwinmm
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.o): In function `main':
e:\p\giaw\src\pkg\mingwrt-4.0.3-1-mingw32-src\bld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c:91: undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Makefile:21: recipe for target 'Midf.o' failed
make: *** [Midf.o] Error 1
Mingw は wmain をサポートしていないことを読みましたが、main が名前空間の外で適切に定義されていることを確認する方法があります。その方法がわかりません。
問題を見つけるために、makefile 全体、main()、Midf.h Midf.cpp、またはソース コード内のその他のファイルを含む私のファイルを投稿していただければ幸いです。
ちなみに、これはコンソールプログラムで、MinGW と Cygwin でビルドしてみました。
喜んで手伝ってくれてありがとう!