よくある質問

このツールでは、FortranとC/C++両方のソースコードが指定されている際でも、共有ライブラリを構築できますか?

はい。混在したソースコードおよびオブジェクトファイルを扱うことができます。

このツールは、どのプラットフォーム用のライブラリを構築しますか?

サポートされているプラットフォームは、64-bit Windowsおよび64-bit Linuxです。

私の共有ライブラリは、デバッグまたはリリースバージョンですか?

生成される共有ライブラリは、リリースバージョンライブラリです。

C/C++/Fortranコードのシンタックスのサンプルテンプレートはどこから入手できますか?

サンプルユーザーサブルーチンコードは、インストレーションの下記の場所にあります:
C/C++ ソースコード:
<install>\Altair\<version>\hwsolvers\motionsolve\usersub\c_src
Fortranソースコード:
<install>\Altair\<version>\hwsolvers\motionsolve\usersub\f_src
注: ソースコードに定義されている関数をMotionSolveで使用させるには、それらの関数をWindowsプラットフォーム上にエクスポートする必要があります(Linux上では、すべての関数は自動的にエクスポートされます)。C/C++およびFortran用のこのためのシンタックスを以下に示します。
C/C++:
ヘッダーファイルmsolvsub_c_include.h<install>\Altair\<version>\hwsolvers\motionsolve\usersub\c_src\includeに存在)をコードでインクルードします。関数をエクスポートするには、キーワードCLINKAGE, DLLFUNCおよびSTDCALLを使用します。
#include " msolvsub_c_include.h"
#include "stdlib.h"
CLINKAGE 
DLLFUNC
void
STDCALL
ARYSUB (int *id, double *time, double *par, 
                     int *npar, int *dflag, int *iflag, int *nvalue, double *value)
{
}
Fortran
Fortranシンタックスでは、上記と同じ関数を次のようにエクスポートできます:
SUBROUTINE
ARYSUB (ID, TIME, PAR, NPAR, DFLAG,
     &  IFLAG, NVALUE, VALUE)
!DEC$ ATTRIBUTES DLLEXPORT ::
ARYSUB

上記のコードでは、C/C++とFortranのシンタックスを使用して関数ARYSUBがエクスポートされます。

ソースファイルを選択する順序は重要ですか?

はい。これはある場合には重要になります。例えば、MODULESを定義するFortranソースコードを構築する際、定義済みモジュールの定義を含んだソースファイルを、それらのモジュールを参照するソースファイルより前に含めたい場合があるでしょう。

サポートされているIntel Fortranコンパイラーがインストールされていますが、Fortranファイルをコンパイルできません。何がいけないのでしょうか?

この構築ツールは、環境変数に依存してIntel Fortranコンパイラーのバージョンとマシン上の位置を検知します。環境変数 IFORT_COMPILERxx(xxはコンパイラーのバージョン - 10、11または12)がシステム上で正しく定義され、インストールされているバージョンを指しているようにします。