1
dSPACEコンパイラリンカエラー - fscanfが未定義
私はやや手に負えない問題を扱っています。 MATLAB 2011a上でdSPACE 7.4(RTI 1006)を実行しています。これは、dSPACE DS1006 Cコンパイラv.2.2を使用していることを理解しています。私たちのモデルの1つをコンパイルしようとすると、fscanfが未定義であることを宣言するリンカエラーが発生します(カスタム関数で呼び出されています)。私は、stdio.hがシステム階層のどこにあるべきか、fscanfの定義が含まれていることを確認しました。問題を解決するために私が取ったステップは次のとおりです。 リンカは未定義のfscanf()について最初に文句を言う 私はそれがコンパイルされることを私が知っているところでモデル特有のファイルに挿入された追加の定義はリンカにfscanf()のための矛盾した定義について不平を言わせます stdio.hのfscanf()定義をコメントアウトすると、コンパイル/リンクが成功する stdio.hにスタブ定義を挿入し、オリジナル(およびモデル固有のファイルではスタブ)をコメントアウトすると、 'fscanfの複数の定義'エラーが発生します(これはストーリー全体の最も奇妙な部分です)。 スタブの定義(これは私たちのモデルを壊すべきではないと私は確信していますが、これを検証する機会はまだありません) int fscanf(int a, char *cp, void *b, ...){return 0;} ですから、正しく読んでいるのであれば、fscanfのバージョンであり、実際にはfscanfが実行すべきことを実行しません。要約すると、私はこのモデルを構築するために私のコンパイラのライブラリをハックしなければなりません、そしてそれが現時点で私たちのハードウェア上で動くとは全く確信していません。また、dSPACEのインストールを変更してfscanfを中断するようにオフィスの全員に指示したくありません。 誰かが私にこれについてのいくつかの洞察を与えることができますか? 更新:それは確かに私たちのハードウェアで動きます。しかし、私はfscanf()を壊すのは嫌いなので、これを解決したいのです。