【 在 ziqin 的大作中提到: 】
: intel和msvc虽然都有llvm backend 但是 用不同backend编译的静态库能不能混链 这个问题我内外搜了一下 没有明确答案
这个不用想, 基本不可能, 正如前面说的, 同一家编译器的不同版本都做不到, 更不用说这种不同实现的。
C++语言很复杂, 语言层面以外, 很多实现细节, 根本没有规范, 各家实现各家的,
但是, 混用就是鸡同鸭讲。
举个简单例子, 多态函数, 规范就是函数名一样, 参数不一样。
但是, 到了链接层面, 它们就是不同的函数, 实现方法, 基本都是在函数名上扩展参数后缀,
张三FUNCA_AA_BB_CC, 李四 FUNCA@@AA@@BB@@CC, 王五 FUNCA_FA_FB_BC,
同样包含头文件, 各自按照各自内部实现规范找要链接的函数体, 别家的静态库根本找不到。
--
FROM 124.126.0.*