初心者です。コマンドプロンプトを用いてできないです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
remon
記事: 5
登録日時: 10年前

初心者です。コマンドプロンプトを用いてできないです。

#1

投稿記事 by remon » 10年前

初めての利用です。
DXライブラリ?かなんとかを使うサイト(http://dixq.net/g/)でC言語の勉強しようとしています。
自分のプログラミング暦は学校の授業で入門的な授業を受けた程度です。
さわりだけできる。といった感じでしょうか、、、

先ほどあげたサイトの手順に沿って進めようとしました。
はじめのほう(1.3章?)ほどで順調にいっていましたが、コンパイルするデータ.cppのものと
その中で使う画像.pngなどは同じディレクトリ(フォルダ?)にあると思っていたのですが、、、
ダウンロードしたプロジェクトは「test.cpp」というファイルと「画像」というフォルダが同じ階層にあります。
この状態でコンパイルして実行(CTRL+F5)をおすとすんなりいきます。
どの程度同じ階層に必要なデータがそろえばいいのでしょうか?

また、デスクトップにテキストファイルでソースを作って名前をつけて保存する際に.cppにかえて保存して、
それをコマンドプロンプトでclしようとしても 「includeできません」 的な文が出てclできません。
しかしvisual ~~~で同じファイルを開いて(「.cpp」をダブルクリックして)CTRL+F5でするとできます。
なぜこうも違うのでしょう?
コマンドプロンプトを用いてしたいときは 何を どのレベルで同じ階層に入れればいいのかわかりません。
過去の授業では、学校のパソコンではコマンドプロンプトを使ってしても、ツールを使ってしてもほぼ同様(終了のときに若干違いが、、、)にできたので
なんか不思議でたまらないので質問しました。


下手な質問の仕方で申し訳ないです。
回答もらえるとありがたいです。
プログラミングをできるようになりたいので、
何回も質問をすると思いますが、質問の仕方の指摘などもおねがいします。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#2

投稿記事 by みけCAT » 10年前

とりあえずの方法としては、
DXライブラリの「プロジェクトに追加するべきファイル」の中身を全てtest.cppと同じフォルダに入れれば、
コンパイルが通るかもしれません。

よりよい方法としては、

コード:

g++ -o test test.cpp -I(プロジェクト~のパス) -L(プロジェクト~のパス) (リンクするライブラリの指定)
のようにヘッダやライブラリがあるフォルダのパスをコンパイルオプションで指定出来ればいいのですが、
clというコンパイラに同じようなオプションがあるかは知りません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#3

投稿記事 by softya(ソフト屋) » 10年前

学校などの環境ではややこしい・面倒なことをしなくて良い程度のことしかしないと思います。
DxLibの利用ではその範囲を超えているので、コマンドラインでのコンパイル実行は必要とされる知識が大きく増えます。
実際出来るかといえば出来ますが、ソースが増えるたびに結構面倒なことになります。
学校の環境でも、面倒なことを始めると同じぐらい難しいと思ってもらって良いと思いますよ。
それを楽するための統合環境VisualStudioですからね。

【補足】
「コンパイラ オプション」
http://msdn.microsoft.com/ja-jp/library/9s7c9wdw.aspx
このページのオプションの機能それぞれとか、コンパイラのインクルード、リンクのライブラリ・リンクなどの仕組みなどなど知らないといけないことがたくさんあります。
あと毎回フルコンパイルは面倒なのでnmakeとかも知るべきですね。

【補足の補足】
学校のものは、バッチファイルやシェルスクリプトなどで細かい所が隠蔽されている可能性があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#4

投稿記事 by softya(ソフト屋) » 10年前

ついでに、プロフィールに書いてあった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ぽいです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#5

投稿記事 by みけCAT » 10年前

毎回コンパイルオプションを書くのが面倒なら、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
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

remon
記事: 5
登録日時: 10年前

Re: 初心者です。コマンドプロンプトを用いてできないです。

#6

投稿記事 by remon » 10年前

回答ありがとうございます。
コンパイルオプションというのをとりあえず勉強しなきゃと思いました。

総合環境visual stadioを使って進める分には、サイトの手順どうりいけそうなので、
コンパイルオプションの勉強と並列して進めていこうかと思います。
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#7

投稿記事 by softya(ソフト屋) » 10年前

remon さんが書きました: 総合環境visual stadioを使って進める分には、サイトの手順どうりいけそうなので、
コンパイルオプションの勉強と並列して進めていこうかと思います。
ありがとうございました。
最近ではプロでも出来ない人が結構いるので、別に覚えなくても何とかなりますよ。
開発の環境整備は一部の詳しい人の担当ですので。
興味でやる分には全然構わないんですが。
まぁ、無理してやる必要はない興味があればって所です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: 初心者です。コマンドプロンプトを用いてできないです。

#8

投稿記事 by ISLe » 10年前

環境変数の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%
実際にウチで使っているのは、作成する実行ファイルのターゲットや使用するライブラリを選択できるようにしています。

閉鎖

“C言語何でも質問掲示板” へ戻る