アプリ版:「スタンプのみでお礼する」機能のリリースについて

UNIX上でCのコンパイルをしています。
リンクエラーが発生するのですが、

未定義の          最初に参照している
シンボル          ファイル
DCLUIcntUsrprdUsrId   /home/mrs_adm/shared/DCLIB/tmp/DCS_CHG_WA.a(DCSDBWrpAll_WA.o)

こんな感じです。

DCS_CHG_WA.a はメイクファイルには記述しています。

DCS_CHG_WA.a のアーカイブの一覧をみてもDCSDBWrpAll_WA.oは定義されています。

これからどういうことが推測されるか教えていただけないでしょうか?
説明不足だったらすみません。
なにぶん、makeになれていませんで。。。

よろしくお願いします。

A 回答 (1件)

make の話ではなくて、リンク (ld) の話ですね。



> DCS_CHG_WA.a はメイクファイルには記述しています。
>
> DCS_CHG_WA.a のアーカイブの一覧をみてもDCSDBWrpAll_WA.oは定義されています。

このエラーメッセージは、DCS_CHG_WA.a にある DCSDBWrpAll_WA.o ファイルで参照している
DCLUIcntUsrprdUsrId というシンボル(多分、関数かグローバル変数)が見つからん、
と言ってるのです。

私には、細かいことまでわかりませんが、DCLUIcntUsrprdUsrId が定義してあるオブジェクトを
含むアーカイブファイルを DCS_CHG_WA.a より後に指定してください。

例えば、そのシンボルが DCxxxx.a というファイルに含まれており、同じ DCLIB/tmp に
存在するのであれば

cc … /home/mrs_adm/…/DCS_CHG_WA.a /home/mrs_adm/…/DCxxxx.a

というように。

シンボルを探すには、nm コマンドが使えます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

おっしゃるとおり、オブジェクトの指定の順番が間違っていたようです。
助かりました。ありがとうございました!

お礼日時:2002/11/06 16:31

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