【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

こんにちは.質問させていただきます.

画像の主成分分析を行いたいと思っており,調べたところMISTというライブラリを用いれば用意にできるそうなので,早速使ってみました.
しかし行列演算を行うためのLAPACKというものがうまく環境設定できていないようで,大量のエラーが出て困っています.

手順は下のURLのpdfに従い行っておりました.
http://mist.suenaga.cse.nagoya-u.ac.jp/pdf/MIST_ …

環境設定もこのpdfの19ページに従い行いました.
上記のpdfのとおりにサンプルプログラムを順番に動かしてみたら,画像の入出力などは正常にできました.
が,17ページのサンプルプログラムを実行しようとすると,以下のようなエラーが大量に出てしまいます.

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

1>MSVCRT.lib(ftol2.obj) : error LNK2005: __ftol2 は既に libF77.lib(ftol2.obj) で定義されています。
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e は既に MSVCRT.lib(MSVCR100.dll) で定義されています。
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit は既に MSVCRT.lib(MSVCR100.dll) で定義されています。

(中略)

1>LIBCMT.lib(errmode.obj) : error LNK2005: ___set_app_type は既に MSVCRT.lib(MSVCR100.dll) で定義されています。
1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>C:\Documents and Settings\(ユーザ名)\My Documents\Visual Studio 2010\Projects\test\Debug\test2.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
=====================================================

使用環境はWindows XP,Visual Studio2010です.
プログラミングは初心者です.
.NETというものがよくわからないので,Visual Studioを使っているのですが,これが問題でしょうか?Visual Studioではできないのでしょうか?(画像の入出力などは正常に処理できたので,LAPACKの設定がうまくできていないだけだと自分では思っているのですが・・・)

どなたか詳しい方がいらっしゃいましたら,教えてください.
よろしくお願いいたします.

A 回答 (2件)

static/dynamic双方のライブラリが混在しているように見受けられます。


プロジェクトのプロパティ [C/C++] [コード生成][ランタイムライブラリ] を /MT や /MD に取り換えてみて。
    • good
    • 0
この回答へのお礼

episteme様

ご回答ありがとうございます.
ランタイムライブラリをどれも試してみましたが,どれも通りませんでした・・・.
以下エラーメッセージです.
【/MT】
1>LIBCMT.lib(ftol2.obj) : error LNK2005: __ftol2 は既に libF77.lib(ftol2.obj) で定義されています。
1>C:\Documents and Settings\(ユーザ名)\My Documents\Visual Studio 2010\Projects\test\Debug\test2.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。

【/MD】
1>MSVCRT.lib(ftol2.obj) : error LNK2005: __ftol2 は既に libF77.lib(ftol2.obj) で定義されています。
(中略)
1>LIBCMT.lib(errmode.obj) : error LNK2005: ___set_app_type は既に MSVCRT.lib(MSVCR100.dll) で定義されています。
1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>C:\Documents and Settings\(ユーザ名)佐\My Documents\Visual Studio 2010\Projects\test\Debug\test2.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
=========================
ちなみに,pdfのとおり「Ctl+F5 でビルド&デバッグ無し実行」で行っており,「ソリューション構成」は「Debug」モードだと編集画面のソースコード中に赤い下線(エラーを示すもの)が出ないのですが(コンパイルは上記のとおり通らない),
「Release」モードだとincludeに赤い下線が引かれ,MIST内のヘッダが読まれていないようです.

よろしくお願いいたします.

お礼日時:2011/04/24 19:35

> 【/MT】


> 1>LIBCMT.lib(ftol2.obj) : error LNK2005: __ftol2 は既に libF77.lib(ftol2.obj) で定義されています。

どうやら /MT が正解のようです。 関数の重複定義があるようなので、libF77 から _ftol2 を消してしまえばよさそう。

# これ以上のアドバイスはあげられそうにありません。
# MISTの開発チームに直接問い合わせるのが近道かと。
    • good
    • 0
この回答へのお礼

episteme様

お礼が遅くなってしまい申し訳ありません.
ご回答ありがとうございました.
ちょっと自分には手が出せないようです・・・折角教えてくださったのにすみません.
でもプロパティなどをいじったことがなかったので,いろいろと勉強になりました!
どうもありがとうございました!

お礼日時:2011/04/27 16:42

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