あなたの習慣について教えてください!!

学校のC言語のレポートを家でやろうと思ったのですが、ソースコードを変更していないのにコンパイル時にエラーがでます。おそらく環境の違いによるものだと思うのですが、そのへんには非常に疎いもので教えていただけないでしょうか?

実行したコンパイルは

gcc -g -o abc abc.c fft.o -lm

です。

学校はRed Hat Linuxで自宅はWindowsなのでcygwinを用いています。エラー文ではfft.oがうまく取り込めていないみたいです。

A 回答 (5件)

fft.oがないか、fft.oがLinux用にコンパイルされたものだからではないでしょうか。


CygwinとLinuxでは、オブジェクトファイルの形式も違えば、内部的に利用しているライブラリやランタイムも異なります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
おそらくその通りだと思います。
fft.oをそのままコピーしてました。この場合fftのソースがないと無理ということですよね?

お礼日時:2005/10/30 16:18

エラーが出て困ってるのであれば、エラーメッセージくらい貼り付けてはいかがですか?



「できない」だけで回答が出て来ないのは言うまでもないでしょう。

この回答への補足

ごもっともです。

/tmp/ccYzsLlP.o(.text+0x31d): In function `main':
/home/sohda/Voice/kadai2.c:85: undefined reference to `_fft'
fft.o(.text+0x63): In function `make_sintbl':
: undefined reference to `sin'
fft.o(.text+0x8f): In function `make_sintbl':
: undefined reference to `sqrt'
fft.o(.text+0x15e): In function `make_sintbl':
: undefined reference to `sqrt'
fft.o(.text+0x2dc): In function `fft':
: undefined reference to `free'
fft.o(.text+0x2f6): In function `fft':
: undefined reference to `free'
fft.o(.text+0x31e): In function `fft':
: undefined reference to `malloc'
fft.o(.text+0x335): In function `fft':
: undefined reference to `malloc'
fft.o(.text+0x35d): In function `fft':
: undefined reference to `stderr'
fft.o(.text+0x362): In function `fft':
: undefined reference to `fprintf'
collect2: ld returned 1 exit status

補足日時:2005/11/01 14:05
    • good
    • 0

Cygwinなら


gcc ファイル名.c -o 名前.outで動くと思いますけど
ちょいと試してみてください。
    • good
    • 0

> この場合fftのソースがないと無理ということですよね?



基本的にはそうです。
fft.oの素性がわかりませんが、もしかするとCygwin用のオブジェクトファイルやライブラリが入手できるかもしれません。その場合はソースは不要です。
また、名前からして高速フーリエ変換だと思うので、自作しても知れているかと思います。
    • good
    • 0

fft.oが無いからです。


エラーの種類は、おそらくリンクエラーだと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただfft.oは存在しています。

お礼日時:2005/10/30 16:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!