Cプログラムで定義したマクロに問題があるようです。
このソフトウェアをコンパイルして、MIPSコンパイラで正常に実行します。
ビルドはOKですが、iccを使用すると、実行時に「セグメンテーション違反」というエラーがスローされます。
これらの両方を64ビットアーキテクチャでコンパイルしました(SGIではMIPS、Intelプラットフォームでは-64フラグとiccを使用)。
両方のシステムでこれを正しく機能させるために使用する必要のある魔法のスイッチはありますか?インテル®コンパイラーの警告をオンにすると、プログラム内でマクロが呼び出されるすべての場所で警告がスローされます。通常、マクロのパラメーター(intからchar *)の不一致型の線に沿ったもの、またはそのようなもの。
これが問題のマクロです
#define DEBUG_ENTER(name) {tdepth++;
if(tnames[tdepth] == NULL) tnames[tdepth] = memalign(8, sizeof(char)*MAXLEN);
strcopy(tnames[tdepth],name);
FU_DEBUG("Entering \n");}
これは基本的にデバッグに使用されます-関数呼び出しの数に基づいて設定されたタブ数のログファイルに出力します。(tdepth =タブの深さ)
マニュアルページをチェックしました。memalignはIRIXでのみサポートされているようです。これは私の問題かもしれません。私はそれを追跡するつもりです。