Ste*_*314 27 linker gcc llvm clang llvm-gcc
如果我使用llvm-gcc构建一个静态库,然后将它与使用mingw gcc编译的程序链接,结果是否有效?
对于llvm-gcc,clang和普通gcc的其他组合也是如此.我对如何在Linux(当然使用普通的非mingw gcc)和其他平台上工作感兴趣,但重点是Windows.
我也对所有语言感兴趣,但强调C和C++ - 显然clang不支持Fortran等,但我相信llvm-gcc会这样做.
我假设它们都使用ELF文件格式,但是调用约定,虚拟表格布局等呢?
Skr*_*lar 23
是的,对于C代码,Clang和GCC是兼容的(实际上它们都使用GNU工具链进行链接.)你只需要确保告诉clang创建编译对象而不是中间bitcode对象.C ABI定义明确,因此唯一的问题是存储格式.
C++在编译器之间无法轻松移植; 不同的编译器使用不同的虚拟表调用,构造函数,销毁,名称修改,模板实现等.通常,您应该假设来自一个C++编译器的对象不能与另一个C++编译器一起使用.
但是,是的,在撰写本文时,Clang ++也能够使用GCC/C++编译库; 我最近建立了一个使用G ++的标准运行时库来编译C++程序的装备,它可以很好地编译+链接.
| 归档时间: |
|
| 查看次数: |
13335 次 |
| 最近记录: |