Can C++;编译器使用VS库 我正在试用C++ Cuilder 10.2来开发CLAG32编译器。Builder还没有对CMake的良好支持,因此使用它编译大量第三方库(非常)困难

Can C++;编译器使用VS库 我正在试用C++ Cuilder 10.2来开发CLAG32编译器。Builder还没有对CMake的良好支持,因此使用它编译大量第三方库(非常)困难,c++,visual-c++,clang++,C++,Visual C++,Clang++,有人知道clang32和Visual Studio编译器之间是否存在任何二进制兼容性吗?您需要考虑三种不同的兼容性级别: >文件格式文件对象代码和调试数据,允许使用 CLAN来构建项目的一部分和VisualC++(Cult>Cald>C.exe < /代码>),以构建一个库,然后将它们链接在一起并调试两者。 能够编写符合可移植二进制接口的代码和结构数据,因此可以跨多种编译器调用 > C++标准库的二进制兼容性,以便标准库对象可以在编译器的组合中共享。 我可以肯定地说,(2)是支持的,(3)绝

有人知道clang32和Visual Studio编译器之间是否存在任何二进制兼容性吗?

您需要考虑三种不同的兼容性级别:

>文件格式文件对象代码和调试数据,允许使用<代码> CLAN<代码>来构建项目的一部分和VisualC++(Cult>Cald>C.exe < /代码>),以构建一个库,然后将它们链接在一起并调试两者。

  • 能够编写符合可移植二进制接口的代码和结构数据,因此可以跨多种编译器调用

  • > C++标准库的二进制兼容性,以便标准库对象可以在编译器的组合中共享。

    我可以肯定地说,(2)是支持的,(3)绝对不是;您甚至不能在同一编译器的不同级别之间共享标准库对象。我不知道。绕过(1)问题的一种常见方法是使用每个编译器构建一个DLL,这样它们就可以动态接口,但不需要静态链接或调试数据合并

    如果您关心的是
    cmake
    ,那么我认为您的问题不在于编译器(clang适用于Linux,并且
    cmake
    很好地支持它——您应该发现make脚本能够配置所有编译器选项)。它是否能够为C++ Builder生成项目文件是另一回事,但也许你应该考虑使用不同的IDE。有许多软件支持
    clang
    ,甚至微软的Visual Studio也有一些能力在编译步骤中使用
    clang
    ,并且随着每个版本的发布,它变得越来越好