2016-11-03 7 views
0

元々2つの異なるアセンブラによって作成されたオブジェクトファイルをリンクしようとしています。 68332プロセッサ用の古いMRIアセンブラを使用してオブジェクトファイルにコンパイルされた従来のアセンブリコードがあります。私たちはGNU Binutils m68k v2.24を使って新しいアプリケーションを開発しています。元のオブジェクトファイルを変更せずに古いアセンブラでビルドしたものを使用したいと考えています。私はこれを行うためにビルド環境を設定しました。歴史的な理由から、ビルド環境はSrecord、ieee、ELFの3つの出力形式にリンクしています。これを実行すると、Srecordとieee形式のエラーは発生しません。異なるタイプのオブジェクトファイルをリンクする

のm68k-ELF-LD:エルフのファイルが作成されていない結果ファイル

のターゲット固有のデータをマージすることができなかったが、ELF出力形式のために、私は次のエラーを受け取ります。

このエラーメッセージの意味を最初に理解しようとしていますが、できませんでした。誰かがGNU Binutilsのドキュメントをよく知っていて、エラー定義がどこに定義されているかを知っていれば分かります。

私は実際にターゲットをロードし、Srecord出力を実行しました。前と同じように多くのテストをパスしているように見えるので、ある程度実行されているようです。

従来のオブジェクトファイルは、coff形式のフォーマットである可能性があります。私はこれが問題だと思います。 coffファイルをELF形式に変換する方法はありますか?

ご協力いただきありがとうございます。

答えて

1

従来のオブジェクトファイルは、coffフォーマット形式である可能性があります。私はこれが問題だと思います。 coffファイルをELF形式に変換する方法はありますか?

objcopyフォーマット間の変換に使用できます。しかし、これを行うには、両方の形式を理解するように構成されていなければなりません。 objcopy --infoと入力できる形式を確認できます(短縮リストはobjcopy --helpの末尾に表示されます)。

objcopyが必要な形式をサポートしていない場合は、binutilsを自分でビルドする必要があります。

+0

ありがとうございます。私はobjcopyを使用してフォーマットを変換しようとしていましたが、明らかに正しい名前はありませんでした。正しいフォーマットがelf32-m68kだったときにELFを試していました。他の人には、-fオプション付きのobjdumpを使ってレガシーファイルからフルフォーマットを出力しました。お手伝いありがとう。 –

関連する問題