mingw 支持 clr 安全吗?

Posted

技术标签:

【中文标题】mingw 支持 clr 安全吗?【英文标题】:Does mingw support clr safe? 【发布时间】:2017-12-17 07:30:49 【问题描述】:

我想compile C++ extensions to SQL Server,来自文档

安全模式:运行可验证的类型安全代码;用/clr:safe.编译

mingw 的 C++ 编译是否支持/clr:safe

【问题讨论】:

【参考方案1】:

Microsoft .NET 框架的公共语言运行时 (CLR) 没有 应用于非 Microsoft、非 .NET 编译器。几个 Windows 端口 可以由“mingw”表示的GCC 都是非.NET 的本机编译器。微软的 /clr:safe 适用的托管类 C++ 语言 C++/CLI 不是 C++。

/clr:safe 指示 Microsoft 编译器生成一个输出文件,其中包含 没有本机代码,只有可验证类型安全的 Microsoft 中间语言代码 使用 CLR 进行托管执行。根据定义,本机编译器无法提供 一个等效的选项:生成本机代码就是他们的工作。

如果你所追求的是如何使用 GCC 可以进行的最严格的诊断来编译 C++ 提供,一个勤奋的答案会令人不快,因为有太多 用于诊断极端安全案例的选项。至少安顿下来:

-Wall -Wextra -pedantic

(见3.8 Options to Request or Suppress Warnings) 并且可能会因痛苦的经历和越来越多的偏执狂而增加列表;)

除了常规的静态诊断之外,还提供另一个级别的卫生 通过3.11 Program Instrumentation Options 的大-fsanitize=... 家族。

【讨论】:

“/clr:safe 适用的微软托管的类 C++ 语言 C++/CLI 不是 C++。”这很有意义,我正在寻找这方面的信息。我对 MS Landscape 的想法是 0,所以我确信这是一个新手错误,但它击中了头。 具体来说,我想做的是在 Linux(或 C)的 SQL Server 中使用 C++ 而不是 CLI。

以上是关于mingw 支持 clr 安全吗?的主要内容,如果未能解决你的问题,请参考以下文章

MinGW 是不是支持 MFC?

SQL Server 2017 上的 CLR 严格安全性

快速入门系列--CLR--03泛型集合

CTS,CLS,CLR解释

unsafe,fixed与GCHandle

mac64位电脑能编译32bit的openssl吗