【问题标题】:How to change the compiler in Rad Studio (C++ Builder) 10.3如何在 Rad Studio (C++ Builder) 10.3 中更改编译器
【发布时间】:2020-04-28 15:51:19
【问题描述】:

我想更改 Rad Studio 10.3 中的默认编译器。我希望使用官方的 clang 而不是 Embarcadero 基于 clang 的编译器。

【问题讨论】:

  • 您可以通过在路径中的原始 bcc64(或 32 位版本)之前添加指向 clang++ 的链接(名称为 bcc64)来做到这一点 - 但请注意:the embarcadero编译器扩展了语言,您将无法再用它编译 VCL/FMX 代码。不过,一些简单的控制台程序可能会起作用。
  • @TedLyngmo 这很糟糕。我正在寻找一种在不触及整个代码的情况下逃避 ABI 问题的方法。我需要从在 Rad Studio 中使用 VCL 的 C++ 代码在 MSVC 中使用带有 stl 容器的 DLL。感谢您的提醒。
  • 使用 C++ Builder 制作与 MSVC 兼容的 DLL 应该不是问题,但我不确定我是否完全理解。是否要创建一个包含 VCL 代码的 DLL 并希望从 MSVC 中使用该 DLL?
  • @TedLyngmo 我想在具有 VCL 的 Rad Studio 中的 c++ 代码中使用包含 STL 容器并使用 MSVC 编译的 DLL。我知道我可以使用 POD,但我不知道这是否是一种常用技术。此外,将来我还想在Linux上编译DLL(作为lib)。
  • @rbw 在 C++Builder 项目中使用 MSVC 编译的 DLL 没有问题,前提是 DLL 遵循某些限制,例如不使用导出的 C++ 类(名称修改问题),或使用非跨 DLL 边界的 POD 类型(IOW,由于不同的 STL 实现,您不能将 std::list 从 DLL 返回到 CB)。 DLL 的内部实现可以随意使用它想要的任何东西。只要对std::list 的所有访问都被抽象在DLL 函数调用之后,那么就没有问题。 CB 编译器不关心 DLL 在内部做什么,只关心它导出的函数/类型

标签: c++builder clang++


【解决方案1】:

您不能更改 RAD Studio 以使用其他编译器。附带的基于 clang 的编译器高度专业化,具有 Embarcadero 的自定义扩展和命令行参数,IDE 和 RTL/VCL/FMX 框架都依赖这些参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2022-12-21
    相关资源
    最近更新 更多