WINDOWSソースコードをコンパイルするには?
WINDOWSソースコードをコンパイルするには?
当方Windows環境でMinGWというコンパイラを使用しております。
龍神録プログラミングの館にあるゲーム制作に挑戦するつもりだったんですが、愛用のMinGWを取り扱ってないので、このMinGWでWINDOWSのソースコードをコンパイルするのに必要なファイルがあるのかだとか、もしファイルが内包されているとしたら、そのコンパイルコマンドなるものが知りたいです。
初歩的な質問で大変申し訳ないのですが、ぐぐっても分からないので教えて下さい。
※希望としては、なるべく不要な物はインストールしたくないので、理想の開発環境は、エディタ(emacs)+コンパイラー(WINDOWS用のもの)のみという形が望ましいです。
よろしくお願いいたします。
龍神録プログラミングの館にあるゲーム制作に挑戦するつもりだったんですが、愛用のMinGWを取り扱ってないので、このMinGWでWINDOWSのソースコードをコンパイルするのに必要なファイルがあるのかだとか、もしファイルが内包されているとしたら、そのコンパイルコマンドなるものが知りたいです。
初歩的な質問で大変申し訳ないのですが、ぐぐっても分からないので教えて下さい。
※希望としては、なるべく不要な物はインストールしたくないので、理想の開発環境は、エディタ(emacs)+コンパイラー(WINDOWS用のもの)のみという形が望ましいです。
よろしくお願いいたします。
Re: WINDOWSソースコードをコンパイルするには?
基本的なWindows用のヘッダはあるはずです。
DXライブラリは、公式HPでMinGW(GNU C++)用のものも配布されています。
DXライブラリは、公式HPでMinGW(GNU C++)用のものも配布されています。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: WINDOWSソースコードをコンパイルするには?
私もMinGW + GCC 4.6 + DXライブラリという組み合わせでゲームを開発しています.
重要なのは,Gnu C++ ( Bloodshed Dev-C++ ) によるDXライブラリの使い方に書かれているように,適切なコンパイルオプション(-Dや-I)を設定することです.
一つ質問したいのですが,「WINDOWSのソースコード」って何でしょうか?マイクロソフトからソースコードをもらったとか?
重要なのは,Gnu C++ ( Bloodshed Dev-C++ ) によるDXライブラリの使い方に書かれているように,適切なコンパイルオプション(-Dや-I)を設定することです.
一つ質問したいのですが,「WINDOWSのソースコード」って何でしょうか?マイクロソフトからソースコードをもらったとか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: WINDOWSソースコードをコンパイルするには?
すこし違います。こちらを参考にして下さい。上のソースコードをコンパイルするコマンドは、gcc filename.cでしょうか・・。
「よしいずの雑記帳 MinGWでWindowsプログラミングを行う方法」
http://yoshiiz.blog129.fc2.com/blog-entry-208.html
DXライブラリ自体はC++のライブラリです。なので、C言語ではなくC++としてコンパイルする必要があります。あと、DXライブラリのファイルの中身って、恐らくアセンブラファイル?と、ヘッダファイルの2種類が入ってるかと思うんですが
これをパスでいうと、~\MInGW\binに入れたらいいでしょうか?
MinGW自体には私は詳しくないですが、g++で標準的なものはコンパイルできると思いますがリンカの指定なども含めるとmakefileを作ることになると思います。
自信がないなら、Dev-C++を使われたほうが簡単だと思います。
過去ログにmakefileがありました。
「簡単&お手軽C++入門サイト構築について [雑談] • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=8314&p=68201
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: WINDOWSソースコードをコンパイルするには?
少し違います。 gcc -mwindows filename.c で何とかなるはずです。
好きなところにファイルを入れればよいと思いますが、それに応じたオプションを指定する必要があります。HH さんが書きました:あと、DXライブラリのファイルの中身って、恐らくアセンブラファイル?と、ヘッダファイルの2種類が入ってるかと思うんですが
これをパスでいうと、~\MInGW\binに入れたらいいでしょうか?
DXライブラリを使う場合のコマンドを無理やり書くと、おそらく次のようになるかと思います。
g++ -mwndows -DDX_GCC_COMPILE -DDX_NON_INLINE_ASM filename.cpp -Lライブラリを置いたディレクトリ -lDxLib -lDxUseCLib -ljpeg -lpng -lzlib -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath
Re: WINDOWSソースコードをコンパイルするには?
ちなみに,私はコンソールへ情報を出力するのが好きですので,-mwindowsなしでコンパイルしています.
僕のディレクトリ構成は
F:\libraries\dxlib-3.06\include
F:\libraries\dxlib-3.06\lib
F:\libraries\dxlib-3.06\lib-nosr
というように,F:\librariesに色々なライブラリを置くようにしています.
makefileの一例
僕のディレクトリ構成は
F:\libraries\dxlib-3.06\include
F:\libraries\dxlib-3.06\lib
F:\libraries\dxlib-3.06\lib-nosr
というように,F:\librariesに色々なライブラリを置くようにしています.
makefileの一例
TARGET = dxtest.exe
CXXSRCS = main.cpp
CSRCS =
OBJS = $(CXXSRCS:.cpp=.o) $(CSRCS:.c=.o)
BEX = bex
BEXDIR = /home/uchan/workspace/bex/trunk
LIBS = -L/f/libraries/dxlib-3.06/lib -lDxLib -lDxUseCLib -ljpeg -lpng -lzlib -ltheora_static \
-lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath \
-lgdi32 -L$(BEXDIR) -l$(BEX)
CPPFLAGS = -std=c++0x -I/f/libraries/dxlib-3.06/include -I$(BEXDIR)/include -DDX_GCC_COMPILE -DDX_NON_INLINE_ASM
CXX = g++
.PHONY: all
all: $(TARGET)
.PHONY: clean
clean:
rm -f $(OBJS)
$(TARGET): $(OBJS)
$(CXX) $(OBJS) $(LIBS)
$(BEX):
make -C $(BEXDIR)
MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法
自分の潜在的処理能力の限界にぶちあたってしまい放置という結果になってしまいました大変もうしわけございません。
タイトルの開発環境構築について再度ご質問をさせて下さい。
スペック:
OS:WINDOWS7(64bit)
タイトルの内容なのですが、その前に恐縮ですが基本的な仕様の事を・・・DXライブラリを使用したソースファイルは、C++で記述されているから、拡張子は.cppで合ってますか?
タイトルの内容になるのですが、以前いただいた回答の中に、標準的なものはコンパイルできると思うが、リンカの指定など含めるとmakefileを作る事になる。 とありました。
要するにDXライブラリとMinGWに同じかあるいは似たようなライブラリがある場合だとg++のみのコマンドでコンパイルが可能で、DXライブラリ内の全ての機能を使おうとするとmakefileを作る事になるという解釈で合ってますか?
また、そのmakefileの記述形式など、初心者入門のような分かりやすい解説HPがあれば教えていただけると助かります。
タイトルの開発環境構築について再度ご質問をさせて下さい。
スペック:
OS:WINDOWS7(64bit)
タイトルの内容なのですが、その前に恐縮ですが基本的な仕様の事を・・・DXライブラリを使用したソースファイルは、C++で記述されているから、拡張子は.cppで合ってますか?
タイトルの内容になるのですが、以前いただいた回答の中に、標準的なものはコンパイルできると思うが、リンカの指定など含めるとmakefileを作る事になる。 とありました。
要するにDXライブラリとMinGWに同じかあるいは似たようなライブラリがある場合だとg++のみのコマンドでコンパイルが可能で、DXライブラリ内の全ての機能を使おうとするとmakefileを作る事になるという解釈で合ってますか?
また、そのmakefileの記述形式など、初心者入門のような分かりやすい解説HPがあれば教えていただけると助かります。
Re: MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法
DXライブラリの中の関数を1つでも使う場合はDXライブラリをリンク指定しなければなりません。HH さんが書きました:タイトルの内容になるのですが、以前いただいた回答の中に、標準的なものはコンパイルできると思うが、リンカの指定など含めるとmakefileを作る事になる。 とありました。
要するにDXライブラリとMinGWに同じかあるいは似たようなライブラリがある場合だとg++のみのコマンドでコンパイルが可能で、DXライブラリ内の全ての機能を使おうとするとmakefileを作る事になるという解釈で合ってますか?
そもそも、DXライブラリと同じような関数はMinGWには無いと思います。
以下、HHさんの到達度チェック項目
- GCC(gcc, g++など)を使って、あるC++ソースファイルを「コンパイルだけ」するやり方はご存知でしょうか。
- GCCを使って、何かのライブラリをリンクするやり方はご存知でしょうか。
- GCCを使って、コマンドライン引数によってマクロを定義するやり方はご存知でしょうか。
検索すればたくさん出てきます。HH さんが書きました:また、そのmakefileの記述形式など、初心者入門のような分かりやすい解説HPがあれば教えていただけると助かります。
まとまった情報はGNUのマニュアル GNU Make にあります。
多くの記事は上記チェック項目で挙げたようなコンパイル過程の知識を前提としていますのでご注意ください。
makefileは手動で「gcc hoge.c」のようなコマンドを入力する手間を機械に任せるための方法ですから。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: WINDOWSソースコードをコンパイルするには?
MinGWというかgccは文化的に自分で全部書くと言うのが普通です。
IDEとか余分なものがないので軽量なのですから、色々やるにはそれ相応のスキルを要求するわけです。
それが難度が高いとか面倒な人はVisualC++を使うべきだと思います。
一度書いてしまえば、更新ソースだけのコンパイルからリンクまで自動的にやってくれるmakefileは非常に便利で直にgccを使う人には避けれないものと思って下さい。
gccのオプションやリンクの仕組み、makefileの書き方を理解することは必須だと思ってもらって良いと思います。
IDEとか余分なものがないので軽量なのですから、色々やるにはそれ相応のスキルを要求するわけです。
それが難度が高いとか面倒な人はVisualC++を使うべきだと思います。
毎回コマンドラインで打ち込んでも良いですがすごく面倒なほど長いコマンドになります。HH さんが書きました:タイトルの内容になるのですが、以前いただいた回答の中に、標準的なものはコンパイルできると思うが、リンカの指定など含めるとmakefileを作る事になる。 とありました。
要するにDXライブラリとMinGWに同じかあるいは似たようなライブラリがある場合だとg++のみのコマンドでコンパイルが可能で、DXライブラリ内の全ての機能を使おうとするとmakefileを作る事になるという解釈で合ってますか?
一度書いてしまえば、更新ソースだけのコンパイルからリンクまで自動的にやってくれるmakefileは非常に便利で直にgccを使う人には避けれないものと思って下さい。
gccのオプションやリンクの仕組み、makefileの書き方を理解することは必須だと思ってもらって良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法
以下、HHさんの到達度チェック項目
[1]は、オプション?-cをファイル名の後に付け足す 『gcc filename.c -c』 ですよね?
[2]は、GCCを使ってコマンドラインでのライブラリのリンク方法は・・・C言語のソースファイルに、コマンドライン上でDXライブラリのリンクをする方法となると、
具体的な例でいうと『gcc -o filename sourcefile.c aDXlibrary.h bDXlibrary.h ・・・』みたいな感じでしょうか?
[3]は、コマンドライン引数によってマクロの定義・・・・・・コマンドラインからファイルにコマンドライン引数を渡して計算や何かの処理を加えて返す事でしょうか??
- [1]GCC(gcc, g++など)を使って、あるC++ソースファイルを「コンパイルだけ」するやり方はご存知でしょうか。
[2]GCCを使って、何かのライブラリをリンクするやり方はご存知でしょうか。
[3]GCCを使って、コマンドライン引数によってマクロを定義するやり方はご存知でしょうか。
[1]は、オプション?-cをファイル名の後に付け足す 『gcc filename.c -c』 ですよね?
[2]は、GCCを使ってコマンドラインでのライブラリのリンク方法は・・・C言語のソースファイルに、コマンドライン上でDXライブラリのリンクをする方法となると、
具体的な例でいうと『gcc -o filename sourcefile.c aDXlibrary.h bDXlibrary.h ・・・』みたいな感じでしょうか?
[3]は、コマンドライン引数によってマクロの定義・・・・・・コマンドラインからファイルにコマンドライン引数を渡して計算や何かの処理を加えて返す事でしょうか??
Re: WINDOWSソースコードをコンパイルするには?
なるほど。softya(ソフト屋) さんが書きました:MinGWというかgccは文化的に自分で全部書くと言うのが普通です。
IDEとか余分なものがないので軽量なのですから、色々やるにはそれ相応のスキルを要求するわけです。
それが難度が高いとか面倒な人はVisualC++を使うべきだと思います。
分かりました。確かにぐぐればたくさん出てくるんですが、なんというか、抽象的なことを上げて具体例に出してくれるような、そういうのが自分は分かりやすいんですが、それに正しいとかどうとかの判断もできないのでsoftya(ソフト屋) さんが書きました:毎回コマンドラインで打ち込んでも良いですがすごく面倒なほど長いコマンドになります。
一度書いてしまえば、更新ソースだけのコンパイルからリンクまで自動的にやってくれるmakefileは非常に便利で直にgccを使う人には避けれないものと思って下さい。
gccのオプションやリンクの仕組み、makefileの書き方を理解することは必須だと思ってもらって良いと思います。
分かりやすく、且つ正しい 推奨サイトのようなものがあれば教えていただきたかったんですが、どれでもだいたい同じと考えていい感じでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: WINDOWSソースコードをコンパイルするには?
gccのオプションもmekefileの書き方も、それだけで一冊の本になるレベルですのでサイトで詳細に解説したのは見たことが無いです。HH さんが書きました:分かりました。確かにぐぐればたくさん出てくるんですが、なんというか、抽象的なことを上げて具体例に出してくれるような、そういうのが自分は分かりやすいんですが、それに正しいとかどうとかの判断もできないので
分かりやすく、且つ正しい 推奨サイトのようなものがあれば教えていただきたかったんですが、どれでもだいたい同じと考えていい感じでしょうか?
あとターゲットなるOSやCPUで書き方が大分変わりますので、そういうところも一般的に書けない問題点ですね。
まぁ、オプションもmkefileも書き損なえば思う様な動作をしないので分かると思いますが、分からなかったらココで聞いて下さい。
親切なサイトの情報は少ないと思いますので自分なりにまとめて貰うのが一番かと。
「makefileの入門者用解説ページ」
http://kommy.s254.xrea.com/makefile.php
特にgccオプションはmanを見てもらうとか下記サイトから必要な物を探しだして下さい。
「Using and Porting the GNU Compiler Collection (GCC) - GCCコマンド・オプション」
http://www.asahi-net.or.jp/~wg5k-ickw/h ... gcc_2.html
「Man page of GCC」
http://linuxjm.sourceforge.jp/html/GNU_ ... gcc.1.html
こういう所も含めてgccの文化なんですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: MinGWのコンパイラにDXライブラリのヘッダファイルを関連付け?リンク?する方法
[1]だけ合っております。-cオプションは実はどこにおいてもおっけーです。HH さんが書きました:以下、HHさんの到達度チェック項目
- [1]GCC(gcc, g++など)を使って、あるC++ソースファイルを「コンパイルだけ」するやり方はご存知でしょうか。
[2]GCCを使って、何かのライブラリをリンクするやり方はご存知でしょうか。
[3]GCCを使って、コマンドライン引数によってマクロを定義するやり方はご存知でしょうか。
[1]は、オプション?-cをファイル名の後に付け足す 『gcc filename.c -c』 ですよね?
[2]は、GCCを使ってコマンドラインでのライブラリのリンク方法は・・・C言語のソースファイルに、コマンドライン上でDXライブラリのリンクをする方法となると、
具体的な例でいうと『gcc -o filename sourcefile.c aDXlibrary.h bDXlibrary.h ・・・』みたいな感じでしょうか?
[3]は、コマンドライン引数によってマクロの定義・・・・・・コマンドラインからファイルにコマンドライン引数を渡して計算や何かの処理を加えて返す事でしょうか??
[2]において「.h」と書いてるということはヘッダーファイルとライブラリファイルを混同しているようですね。コンパイル・リンクの仕組みをきちんと学んだほうが良いかと思います。
[3]「マクロ定義」というのは要するに のようなものです。gccにとあるオプションを渡すと、実際にソースコードに#defineを書かなくとも、好きなマクロを定義できるのです。