プロが教える店舗&オフィスのセキュリティ対策術

ライブラリを用いたFortranプログラムのコンパイルについて。

以前作製した簡単な高速フーリエ変換のテストプログラムを
G95を使用してCygwinでコンパイルしようとしたのですが、
以下のようなエラーが表示されてコンパイルできません。

以前使用していたPCや他のPCでは問題なくコンパイルと
実行ができ、このエラーが出るのは今私が使っているPCのみです。
(これまで試したPCは全てwin7)
原因が分かる方がいらっしゃいましたらご教授願います。

===================================================

$ g95 1.f90 -L. -lfftw -lrfftw
./libfftw.a(fftwnd.o):fftwnd.c:(.text+0x704): `__getreent' に対する定義されてい
ない参照です
./libfftw.a(putils.o):putils.c:(.text+0xc0a): `__getreent' に対する定義されてい
ない参照です
./libfftw.a(malloc.o):malloc.c:(.text+0x42): `__getreent' に対する定義されていな
い参照です
./libfftw.a(malloc.o):malloc.c:(.text+0x52): `__getreent' に対する定義されていな
い参照です
./libfftw.a(malloc.o):malloc.c:(.text+0xcf): `__getreent' に対する定義されていな
い参照です
./libfftw.a(malloc.o):malloc.c:(.text+0xdf): `__getreent' に対する定義されていな
い参照がさらに続いています
./libfftw.a(wisdom.o):wisdom.c:(.text+0x626): `_imp___ctype_' に対する定義されて
いない参照です
./libfftw.a(wisdom.o):wisdom.c:(.text+0x664): `_imp___ctype_' に対する定義されて
いない参照です
./libfftw.a(wisdom.o):wisdom.c:(.text+0x6bc): `_imp___ctype_' に対する定義されて
いない参照です
./libfftw.a(wisdom.o):wisdom.c:(.text+0x704): `_imp___ctype_' に対する定義されて
いない参照です
./libfftw.a(wisdom.o):wisdom.c:(.text+0x75c): `_imp___ctype_' に対する定義されて
いない参照です
./libfftw.a(wisdom.o):wisdom.c:(.text+0x780): `_imp___ctype_' に対する定義されて
いない参照がさらに続いています

A 回答 (2件)

ん~....



そうなると, かなり根の深い問題かもしれませんねぇ. ちょいと __getreent で調べてみると
1. ライブラリのバージョンがあっていない
とか
2. 複数のコンパイラがあって不適切なものを使っている
とか
3. そもそもライブラリを作るときに設定を間違えている
とか, いろんな原因が見つかっちゃったりします. 例えば, libfftw.a とか librfftw.a とかを他のシステムから単純にコピーしたりすると 1 の問題にぶちあたる可能性があり得るらしいです (逆に言えば, これらのライブラリが今使っているPC で作った物ならとりあえず排除できそうでもある).

この回答への補足

御回答ありがとうございます。

libfftw.a librfftw.a はともに他のシステムから
コピーしてきただけのものですが、
他のPCでは使用できています。
Cygwin自体のバージョンは現行のPC
(ライブラリ使用コンパイルでエラーが出たもの)
の方が新しいのですが、その関係でしょうか。

他に新しい.aファイルを用意して使用できるか試そうと思います。
ありがとうございました!

補足日時:2015/01/06 19:54
    • good
    • 0
この回答へのお礼

現状報告を含めまして改めて御礼を。

Cygwin,ライブラリともに同じバージョンである同僚AのPCでは、
コンパイル、実行ともに問題なくできたのですが、

同僚BのPCに、新規にCygwinのダウンロードを行い、
件のライブラリを用いたコードのコンパイルを行ったところ
私と同様のエラーが発生しました。

このエラーの原因は未だ不明ですが、引き続き原因の究明をしていきたいと思います。

ご回答どうもありがとうございました。

お礼日時:2015/01/20 18:28

1つ確認したい.



「以前使用していたPCや他のPCでは問題なくコンパイルと実行ができ」と「これまで試したPCは全てwin7」とあるわけだが, ではその「以前使用していたPCや他のPC」でも「G95を使用してCygwinでコンパイル」していたということでいい?

この回答への補足

はい、ご確認の通り、「以前のPC,他のPC」でも「G95を使用してCygwinでコンパイル」を試し、結果コンパイルできました。

補足日時:2015/01/05 18:14
    • good
    • 0

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