我正在尝试为嵌入式系统上的专有接口设备(飞思卡尔HCS08)使用API,所提供的文件包括头文件(.h)和库文件(.lib)。头文件与我的其余代码(标准C)编译得很好,但当尝试链接到库时,我得到内存错误,指出文件可能已损坏。
我对C语言中的库的理解有些有限,因为我几乎只在嵌入式系统上工作,那里不存在像stdio、文件和dll这样神奇的东西;但是这个(或任何)库会是特定于平台的吗?它是否包含完整(如果有任何级别的话)编译过的代码?提供的其他一些文件是VS项目文件,所以如果.lib是特定于平台的,那么将用于x86-Windows8位编译器的文件链接到8位编译器会失败也就不足为奇了;可能只有我一个人会失败。
发布于 2010-06-26 02:07:01
.lib文件不仅是特定于CPU的(没有办法将HCS08代码链接到x86代码),它还是特定于工具链的(CodeWarrior不会与SDCC对话,GCC/binutils不会与Visual Studio对话)。
发布于 2010-06-26 02:07:39
是的,.lib包含已编译的代码,因此它是特定于平台的。如果你有源代码,你应该能够把它重新编译到你的平台上。
https://stackoverflow.com/questions/3120308
复制相似问题