C言語のコンパイルについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まり

C言語のコンパイルについて

#1

投稿記事 by まり » 14年前

Cygwinを使って、C言語のソースファイルをコンパイルしたいのですが、
makeと入れると


bash-3.2$ make
gcc -o ../bin/sanx2d_linux.exe control.o dataio.o basic.o levelset.o solveX2D.o 2DXelement.o cal_SIF.o LIBskyline.o LIButility.o DBio.o cpu.c -lm
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot open output file ../bin/sanx2d_linux.exe: No such file or directory
collect2: ld returned 1 exit status
make: *** [../bin/sanx2d_linux.exe] Error 1
bash-3.2$

こんなエラーが表示されます。。。
この場合どのように解決すればよいでしょうか?
C言語始めたばかりでぜんぜん分からないので、教えてください!!

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

Re: C言語のコンパイルについて

#2

投稿記事 by ISLe » 14年前

カレントディレクトリのひとつ上層のディレクトリにbinサブディレクトリが無いのでは?
makeするディレクトリで
md ../bin
とコマンドを打ってディレクトリを作れば良いと思います。

まり

Re: C言語のコンパイルについて

#3

投稿記事 by まり » 14年前

ありがとうございます。
cygwin>home>bin
とあればいいということでしょうか?

ちなみにそのbinというフォルダをつくると、

bash-3.2$ make
make: Nothing to be done for `all'.

となってしまいました・・・。
よく意味がわかりません。
知識が浅いまま質問ばかりですいません(泣)

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

Re: C言語のコンパイルについて

#4

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

これは何をコンパイルしようとしたのですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

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

Re: C言語のコンパイルについて

#5

投稿記事 by ISLe » 14年前

まり さんが書きました:cygwin>home>bin
とあればいいということでしょうか?
場所としてはあまりよろしくないですが、makeを通したいだけならそれで良いのかもしれません。
まり さんが書きました:bash-3.2$ make
make: Nothing to be done for `all'.
makeはやることはやったのでもうやることがありませんと言っています。
先のbinディレクトリに実行ファイルがありませんか?

まり

Re: C言語のコンパイルについて

#6

投稿記事 by まり » 14年前

cygwin>home>bin
[/quote]
場所としてはあまりよろしくないですが、makeを通したいだけならそれで良いのかもしれません。

binディレクトリはどこにあるのが適切ですか?
まり さんが書きました:bash-3.2$ make
make: Nothing to be done for `all'.
makeはやることはやったのでもうやることがありませんと言っています。
先のbinディレクトリに実行ファイルがありませんか?[/quote]

binディレクトリに実行ファイルを入れています。
ソースファイルやヘッダファイルがたくさんあり、makeファイルもあるときは
makeを通せばプログラミングが実行できると思っていたのですが・・・。
間違っていますか?
また、どのようにすれば実行ができるようになるのでしょうか?

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

Re: C言語のコンパイルについて

#7

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

横から失礼します。

通常、ユーザーのファイルやフォルダ類はhomeの下にユーザーディレクトリがあってその下に置くのがセオリーです。
C:\cygwin\home\ユーザー名
ですね。

binフォルダを置くなら
C:\cygwin\home\ユーザー名\bin
となるのが一番良いと思います。
binディレクトリに実行ファイルを入れています。
ソースファイルやヘッダファイルがたくさんあり、makeファイルもあるときは
makeを通せばプログラミングが実行できると思っていたのですが・・・。
間違っていますか?
また、どのようにすれば実行ができるようになるのでしょうか?
makeは通常実行ファイルを作成するために行うものです。
なのでmake前にすでに実行ファイルが出来ているという事態が不思議です。

説明していただいていないのですが、何をなんの為にmakeしようとしているのでしょうか?
入手元サイトなども示して頂けると助かります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: C言語のコンパイルについて

#8

投稿記事 by ISLe » 14年前

softyaさんがおっしゃっているようにhomeディレクトリの下にユーザー名のディレクトリ以外を置くと困ったことになると思います。
binというユーザー名を好んで使う方はたくさんいる(わたしも何人か知っている)と思います。
Cygwinですしひとりで使う分にはどうでも良いことかもしれませんが。

makeが実行ファイルの作成を終えているのですから、
../bin/sanx2d_linux.exe
とコマンドを打てば実行できるのではないでしょうか?

閉鎖

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