4

組み込みシステム (Freescale HCS08) で独自のインターフェイス デバイス用の API を使用しようとしています。提供されているファイルには、ヘッダー (.h) とライブラリ (.lib) が含まれています。ヘッダーは残りのコード (標準 C) で正常にコンパイルされますが、ライブラリにリンクしようとすると、ファイルが破損している可能性があるというメモリ エラーが発生します。

stdio、ファイル、dll などの魔法のようなものが存在しない組み込みシステムでほとんど独占的に作業しているため、C のライブラリについての私の理解はいくぶん限られています。しかし、(または任意の) ライブラリはプラットフォーム固有のものでしょうか? 完全に (そこに何らかのレベルがある場合) コンパイルされたコードが含まれていますか? 提供される他のファイルの一部は VS プロジェクト ファイルであるため、.lib がプラットフォーム固有である場合、x86-Windows 用のファイルを 8 ビット コンパイラにリンクすると失敗することは予想外ではありません。それは私だけかもしれません。

4

2 に答える 2

9

.lib ファイルは CPU 固有であるだけでなく (HCS08 コードを x86 コードにリンクする方法はありません)、ツールチェーン固有です (CodeWarrior は SDCC と通信せず、GCC/binutils は Visual Studio と通信しません)。

于 2010-06-25T18:07:01.440 に答える
1

はい、.lib にはコンパイルされたコードが含まれているため、プラットフォーム固有です。ソースがある場合は、プラットフォームに再コンパイルできるはずです。

于 2010-06-25T18:07:39.160 に答える