linux – Can Clang编译代码用GCC编译.a libs?

linux – Can Clang编译代码用GCC编译.a libs?,第1张

概述我的项目目前正在 gcc下编译.它使用Boost,ZeroMQ作为静态.a库和一些.so库,如SDL.我想一路铿锵但不是现在.我想知道是否有可能编译使用.c和.so库的代码在gcc下使用clang编译? 是的,你通常可以使用与GCC编译库的clang(反之亦然,使用gcc与CLANG编译库),因为实际上它不是编译而是 linking是相关的.你可能不走运,并且会感到不愉快. 原则上你可以对用于链接 我的项目目前正在 gcc下编译.它使用Boost,ZeroMQ作为静态.a库和一些.so库,如SDL.我想一路铿锵但不是现在.我想知道是否有可能编译使用.c和.so库的代码在gcc下使用clang编译?解决方法 是的,你通常可以使用与GCC编译库的clang(反之亦然,使用gcc与CLANG编译库),因为实际上它不是编译而是 linking是相关的.你可能不走运,并且会感到不愉快.

原则上你可以对用于链接相关库的libstdc版本有一些依赖(如果它们用C编码).实际上,这通常无关紧要.

在C中,name mangling理论上可能是一个问题(可能存在一些极端情况,即使两个不同版本的g之间存在不兼容性).同样,在实践中,它通常不是问题.

因此,通常你可以将CLANG(甚至不同但非常接近的版本)与GCC混合,但你可能会有令人不快的意外.任何C编译器(无论是CLANG还是GCC)应该期望能够使用相同的编译器和版本编译和链接整个软件(和所有库).这就是为什么升级分发中的编译器需要做很多工作的原因:分发制造商必须确保所有包都能很好地编译(并且它们确实会出现意外!).

总结

以上是内存溢出为你收集整理的linux – Can Clang编译代码用GCC编译.a libs?全部内容,希望文章能够帮你解决linux – Can Clang编译代码用GCC编译.a libs?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1033423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存