
我正在将我的C项目从Windows移植到Linux,我使用了一些第三方库,包括openAL,FreeType和FreeImage,我想知道是否必须获取/重新编译新的库文件.
解决方法 windows和linux上的动态链接器以完全不同的方式工作.在linux上,链接器将使用elf格式的.so文件.然而,windows使用.lib和.dll文件,这些文件采用不同的,不兼容的格式.即使您要找到解决方法,两个 *** 作系统之间的默认调用约定也是不同的. C函数调用将参数放在不同的寄存器中,因此如果没有编译器使用自定义调用约定就不可能在这些lib文件中调用函数,但是这会阻止任何其他代码调用您的库.
Wine Project创建了一个兼容层,允许windows二进制文件调用为linux编译的库,但是对这样的层存在显着的性能和复杂性损失.
简而言之,几乎在每种情况下,最好分别为两个 *** 作系统重新编译项目.你提到的库(afaik)都可用于linux,所以移植应该是轻而易举的.
总结以上是内存溢出为你收集整理的C和C .lib文件是否可移植?全部内容,希望文章能够帮你解决C和C .lib文件是否可移植?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)