No single-threaded DLL option

TRNSYS-Usersを見ていたら、FORTRANコンパイラの設定の質問が流れていました。

[TRNSYS-users] No single-threaded DLL option

Type29をビルドしなおしてみたら、コンポーネントからのファイル作成時にエラーになってしまうようです。現象としては”fort.xxx”というファイルの書出しに失敗するというもの。

対策としてコンパイラの設定を変更しようとしたけど、該当項目がない。しょうがないのでWindowsXpとCompaq Fortranで対応したどWindows7の環境で何とかならんの?という質問。

これと全く同じ話で最近悩んだので、以下、備忘のため書いておきます。

質問者のメールには書いてないけど、この件の対策の元ネタはTRNSYSのドキュメントの以下の記載。

7.5.2.6. Troubleshooting multiple DLL’s

ここに原因と対策が記載されているんですが、悩んだのが対策の記述。

set “Project Settings\Fortran\Libraries” to “Single-threaded DLL” in the Visual Studio

Visual Studioでライブラリーの設定を変更しろとありますが、Intel Visual Fortran(以下、IVF)のライブラリーの設定に”Single-threaded DLL”って無いんです。

でも、IVFの場合はここで、単に”Mutli-threaded DLL”を選べばOK。エラーの原因になるのはSingleかMultiかの違いじゃなくて、ライブラリーをDLLにしているかStaticにしているかの違いです。

ということで”DLL”の方を選べばOKです。

実際の設定画面のキャプチャーを載せておきます。

  • Release
  • Debug

ただ注意しないといけないのは、TRNDLL側も同じ設定にしてビルドしないと、やっぱりエラーになります。

Pocket

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です