ページ 1 / 1
初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 04:49
by remon
初めての利用です。
DXライブラリ?かなんとかを使うサイト(
http://dixq.net/g/)でC言語の勉強しようとしています。
自分のプログラミング暦は学校の授業で入門的な授業を受けた程度です。
さわりだけできる。といった感じでしょうか、、、
先ほどあげたサイトの手順に沿って進めようとしました。
はじめのほう(1.3章?)ほどで順調にいっていましたが、コンパイルするデータ.cppのものと
その中で使う画像.pngなどは同じディレクトリ(フォルダ?)にあると思っていたのですが、、、
ダウンロードしたプロジェクトは「test.cpp」というファイルと「画像」というフォルダが同じ階層にあります。
この状態でコンパイルして実行(CTRL+F5)をおすとすんなりいきます。
どの程度同じ階層に必要なデータがそろえばいいのでしょうか?
また、デスクトップにテキストファイルでソースを作って名前をつけて保存する際に.cppにかえて保存して、
それをコマンドプロンプトでclしようとしても 「includeできません」 的な文が出てclできません。
しかしvisual ~~~で同じファイルを開いて(「.cpp」をダブルクリックして)CTRL+F5でするとできます。
なぜこうも違うのでしょう?
コマンドプロンプトを用いてしたいときは 何を どのレベルで同じ階層に入れればいいのかわかりません。
過去の授業では、学校のパソコンではコマンドプロンプトを使ってしても、ツールを使ってしてもほぼ同様(終了のときに若干違いが、、、)にできたので
なんか不思議でたまらないので質問しました。
下手な質問の仕方で申し訳ないです。
回答もらえるとありがたいです。
プログラミングをできるようになりたいので、
何回も質問をすると思いますが、質問の仕方の指摘などもおねがいします。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 07:58
by みけCAT
とりあえずの方法としては、
DXライブラリの「プロジェクトに追加するべきファイル」の中身を全てtest.cppと同じフォルダに入れれば、
コンパイルが通るかもしれません。
よりよい方法としては、
コード:
g++ -o test test.cpp -I(プロジェクト~のパス) -L(プロジェクト~のパス) (リンクするライブラリの指定)
のようにヘッダやライブラリがあるフォルダのパスをコンパイルオプションで指定出来ればいいのですが、
clというコンパイラに同じようなオプションがあるかは知りません。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 10:35
by softya(ソフト屋)
学校などの環境ではややこしい・面倒なことをしなくて良い程度のことしかしないと思います。
DxLibの利用ではその範囲を超えているので、コマンドラインでのコンパイル実行は必要とされる知識が大きく増えます。
実際出来るかといえば出来ますが、ソースが増えるたびに結構面倒なことになります。
学校の環境でも、面倒なことを始めると同じぐらい難しいと思ってもらって良いと思いますよ。
それを楽するための統合環境VisualStudioですからね。
【補足】
「コンパイラ オプション」
http://msdn.microsoft.com/ja-jp/library/9s7c9wdw.aspx
このページのオプションの機能それぞれとか、コンパイラのインクルード、リンクのライブラリ・リンクなどの仕組みなどなど知らないといけないことがたくさんあります。
あと毎回フルコンパイルは面倒なのでnmakeとかも知るべきですね。
【補足の補足】
学校のものは、バッチファイルやシェルスクリプトなどで細かい所が隠蔽されている可能性があります。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 10:48
by softya(ソフト屋)
ついでに、プロフィールに書いてあったCorona SDKについて
Luaスクリプト言語を使ったスマホなどのゲーム開発の環境みたいです。
「Develop Cross Platform Mobile Apps and Games | Corona Labs」
http://coronalabs.com/products/corona-sdk/
日本語でのスライド。
「CoronaSDK開発の魅力」
http://www.slideshare.net/sterai1/coronasdk
今は無料でスマホにリリースしてOKぽいです。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 10:53
by みけCAT
毎回コンパイルオプションを書くのが面倒なら、makeを活用するのもいいと思います。
Makefileの例
コード:
CC=g++
CFLAGS=適切なコンパイルオプション(最適化、ヘッダ/ライブラリがあるディレクトリのパスの指定など)
LIBS=ライブラリをリンクするオプション
RM=rm -f
test.exe: test.cpp
$(CC) $(CFLAGS) -o test.exe test.cpp $(LIBS)
.PHONY: clean
clean:
$(RM) test.exe
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 15:17
by remon
回答ありがとうございます。
コンパイルオプションというのをとりあえず勉強しなきゃと思いました。
総合環境visual stadioを使って進める分には、サイトの手順どうりいけそうなので、
コンパイルオプションの勉強と並列して進めていこうかと思います。
ありがとうございました。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 15:36
by softya(ソフト屋)
remon さんが書きました:
総合環境visual stadioを使って進める分には、サイトの手順どうりいけそうなので、
コンパイルオプションの勉強と並列して進めていこうかと思います。
ありがとうございました。
最近ではプロでも出来ない人が結構いるので、別に覚えなくても何とかなりますよ。
開発の環境整備は一部の詳しい人の担当ですので。
興味でやる分には全然構わないんですが。
まぁ、無理してやる必要はない興味があればって所です。
Re: 初心者です。コマンドプロンプトを用いてできないです。
Posted: 2014年2月20日(木) 18:58
by ISLe
環境変数のINCLUDE,LIBにそれぞれインクルードパス,ライブラリパスを設定しておくともっと楽にできる場面が増えると思います。
わたしはユーザーディレクトリに環境設定用のバッチファイル等の個人的な実行形式を置くフォルダを用意して実行パスを通してます。
例えば、Visual Studio Express 2013 for Windows DesktopでDXライブラリを使う場合、次のようなバッチファイルを作っておいて、コマンドプロンプトを開いてから実行すれば、clコマンドで特にオプションを指定しなくてもDXライブラリを使ったソースファイルをコンパイルできるようになります。
コード:
@echo off
rem /*
rem * Microsoft Visual C++
rem * in Microsoft Visual Studio Express 2013 for Windows Desktop
rem */
call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
set INCLUDE=C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用;%INCLUDE%
set LIB=C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用;%LIB%
実際にウチで使っているのは、作成する実行ファイルのターゲットや使用するライブラリを選択できるようにしています。