我可以用gcc编译一个函数然后用clang吗?

Met*_*est 7 c gcc llvm clang

我试图使用SSE4.2内部函数与clang/llvm,但它没有编译,因为我cannot select intrinsic从LLVM 得到错误.另一方面,相同的代码在gcc中完美地编译.所以我想,也许我可以使用gcc编译该函数,以便拥有一个对象或库文件,然后在我的代码中调用该库函数,该函数由clang/llvm编译.那会有用吗?

Mou*_*use 0

对于任何或多或少复杂的 C++ 代码,例如编译为 vtable 的代码 - 答案是否定的。两者不兼容。

为了说明上述观点,请尝试使用 g++ 编译Crypto++库(AES/GCM 获得约 40% 的加速),然后将 clang++ 编译的代码与其链接。

  • 纠正我自己的答案:是的,你可以。使用“clang++ -stdlib=libstdc++”编译代码。然后它将正确链接到 g++ 编译的库(包括 Crypto++)。不幸的是,相反的情况不起作用:无论我尝试什么标志,g++ 编译的代码都无法与 clang++ 编译的库一起使用。:-( (5认同)