GCC/MingW 在不同版本上编译
Posted
技术标签:
【中文标题】GCC/MingW 在不同版本上编译【英文标题】:GCC/MingW compiling on different versions 【发布时间】:2010-10-27 15:08:53 【问题描述】:我想知道我可以使用一个编译的静态库(lib*.a 文件)吗 MingW 版本并在其他版本上使用它们?还是我必须重新编译所有库?
【问题讨论】:
【参考方案1】: 静态库(*.a
文件)只是目标文件(*.o
文件)的存档
您可以将针对不同版本的库(此处为 MinGW 库)编译的代码片段混合在一起,只要它们保持二进制代码兼容性即可。在 MinGW 的情况下,这意味着所有 3.* 版本都可以很好地协同工作。
【讨论】:
你知道吗,.a 文件和 .lib 文件(微软)有什么区别? .lib 文件也是 .o 文件的某种档案吗?【参考方案2】:是的,你可以。如果它们没有出现任何问题,则无需重新编译它们
【讨论】:
但是我在某些操作系统上编译的库不能在其他操作系统上使用? .a 文件只是 .o 文件的存档?还是更复杂? @Seba :第一个是真的。在某些操作系统上编译的库不能在其他操作系统上使用。您需要重新编译它们。对于第二个,.a 文件是 .o 文件的存档,这些文件被编译为统计库。 谢谢 :) 链接器会链接包含所需代码的完整 .o 文件还是仅链接所需的部分? @Seba。链接器将链接完整的 .o 文件,因为它是一个静态链接库。以上是关于GCC/MingW 在不同版本上编译的主要内容,如果未能解决你的问题,请参考以下文章