c .libファイルプラットフォームは固有ですか?
-
30-09-2019 - |
質問
埋め込みシステム(Freescale HCS08)に独自のインターフェイスデバイスにAPIを使用しようとしています。ヘッダーは私のコードの残りの部分(標準c)で正常にコンパイルされますが、ライブラリに対してリンクしようとすると、ファイルが破損している可能性があるというメモリエラーが表示されます。
Cのライブラリについての私の理解は、STDIO、ファイル、DLLなどの魔法が存在しない埋め込みシステムでほぼ排他的に機能するため、やや制限されています。しかし、(または任意の)ライブラリはプラットフォーム固有のものでしょうか?コンパイルされたコードが完全に含まれていますか?提供される他のファイルの一部はVSプロジェクトファイルです。そのため、.LIBがプラットフォーム固有の場合、x86ウィンドウ用のファイルを8ビットコンパイラにリンクすることは失敗することは予想外ではありません。それは私だけかもしれません。
解決
.libファイルCPU固有(HCS08コードをx86コードにリンクする方法はない)だけでなく、ツールチェーン固有です(codewarriorはSDCCと話しません、GCC/binutilsはVisual Studioに話しかけません)。
他のヒント
はい、.libにはコンパイルされたコードが含まれているため、プラットフォーム固有です。ソースがある場合は、プラットフォームに再コンパイルできるはずです。
所属していません StackOverflow