我正在尝试在嵌入式系统 (Freescale HCS08) 上使用专有接口设备的 API,并且提供的文件包括标头 (.h) 和库 (.lib)。标头与我的代码的其余部分(标准 C)编译得很好,但是当尝试链接到库时,我收到内存错误,指出文件可能已损坏。

我对 C 语言库的理解有些有限,因为我几乎只在嵌入式系统上工作,其中不存在 stdio、文件和 dll 等神奇的东西;但是(或任何)库是否特定于平台?它是否包含完整的(如果有任何类型的级别)编译代码?提供的其他一些文件是 VS 项目文件,因此如果 .lib 是特定于平台的,则将用于 x86-Windows 的文件链接到 8 位编译器会失败也就不足为奇了;这可能只是我。

有帮助吗?

解决方案

.lib 文件不仅是特定于 CPU 的(无法将 HCS08 代码链接到 x86 代码),而且是特定于工具链的(CodeWarrior 不会与 SDCC 对话,GCC/binutils 不会与 Visual Studio 对话)。

其他提示

是的,.lib 包含已编译的代码,因此它是特定于平台的。如果您有源代码,您应该能够将其重新编译到您的平台。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top