ページ 1 / 1
C言語のコンパイルについて
Posted: 2011年1月18日(火) 17:53
by まり
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言語始めたばかりでぜんぜん分からないので、教えてください!!
Re: C言語のコンパイルについて
Posted: 2011年1月18日(火) 17:58
by ISLe
カレントディレクトリのひとつ上層のディレクトリにbinサブディレクトリが無いのでは?
makeするディレクトリで
md ../bin
とコマンドを打ってディレクトリを作れば良いと思います。
Re: C言語のコンパイルについて
Posted: 2011年1月18日(火) 18:39
by まり
ありがとうございます。
cygwin>home>bin
とあればいいということでしょうか?
ちなみにそのbinというフォルダをつくると、
bash-3.2$ make
make: Nothing to be done for `all'.
となってしまいました・・・。
よく意味がわかりません。
知識が浅いまま質問ばかりですいません(泣)
Re: C言語のコンパイルについて
Posted: 2011年1月18日(火) 20:59
by みけCAT
これは何をコンパイルしようとしたのですか?
Re: C言語のコンパイルについて
Posted: 2011年1月18日(火) 23:35
by ISLe
まり さんが書きました:cygwin>home>bin
とあればいいということでしょうか?
場所としてはあまりよろしくないですが、makeを通したいだけならそれで良いのかもしれません。
まり さんが書きました:bash-3.2$ make
make: Nothing to be done for `all'.
makeはやることはやったのでもうやることがありませんと言っています。
先のbinディレクトリに実行ファイルがありませんか?
Re: C言語のコンパイルについて
Posted: 2011年1月19日(水) 07:49
by まり
cygwin>home>bin
[/quote]
場所としてはあまりよろしくないですが、makeを通したいだけならそれで良いのかもしれません。
binディレクトリはどこにあるのが適切ですか?
まり さんが書きました:bash-3.2$ make
make: Nothing to be done for `all'.
makeはやることはやったのでもうやることがありませんと言っています。
先のbinディレクトリに実行ファイルがありませんか?[/quote]
binディレクトリに実行ファイルを入れています。
ソースファイルやヘッダファイルがたくさんあり、makeファイルもあるときは
makeを通せばプログラミングが実行できると思っていたのですが・・・。
間違っていますか?
また、どのようにすれば実行ができるようになるのでしょうか?
Re: C言語のコンパイルについて
Posted: 2011年1月19日(水) 10:39
by softya(ソフト屋)
横から失礼します。
通常、ユーザーのファイルやフォルダ類はhomeの下にユーザーディレクトリがあってその下に置くのがセオリーです。
C:\cygwin\home\ユーザー名
ですね。
binフォルダを置くなら
C:\cygwin\home\ユーザー名\bin
となるのが一番良いと思います。
binディレクトリに実行ファイルを入れています。
ソースファイルやヘッダファイルがたくさんあり、makeファイルもあるときは
makeを通せばプログラミングが実行できると思っていたのですが・・・。
間違っていますか?
また、どのようにすれば実行ができるようになるのでしょうか?
makeは通常実行ファイルを作成するために行うものです。
なのでmake前にすでに実行ファイルが出来ているという事態が不思議です。
説明していただいていないのですが、何をなんの為にmakeしようとしているのでしょうか?
入手元サイトなども示して頂けると助かります。
Re: C言語のコンパイルについて
Posted: 2011年1月19日(水) 17:34
by ISLe
softyaさんがおっしゃっているようにhomeディレクトリの下にユーザー名のディレクトリ以外を置くと困ったことになると思います。
binというユーザー名を好んで使う方はたくさんいる(わたしも何人か知っている)と思います。
Cygwinですしひとりで使う分にはどうでも良いことかもしれませんが。
makeが実行ファイルの作成を終えているのですから、
../bin/sanx2d_linux.exe
とコマンドを打てば実行できるのではないでしょうか?