是否有编译为机器代码的 C C++ C# 编译器 [关闭]

     2023-02-22     251

关键词:

【中文标题】是否有编译为机器代码的 C C++ C# 编译器 [关闭]【英文标题】:Is there a C C++ C# compiler that compiles to machine code [closed] 【发布时间】:2014-11-23 23:10:20 【问题描述】:

我正在寻找一种将小型计算密集型程序编译为机器代码可执行文件的方法。

该程序目前是在 Microsoft Visual Studio C# 环境中编写的,但我很乐意在 C、C++ 或任何类似变体中编写它,如果它导致我获得机器代码可执行文件。

(我也有 SharpDevelop 环境)

我想避免使用运行时 JIT 编译器产生的运行时开销。

我希望只有我会使用该程序,而且可能只会在我的机器上使用,所以我不必担心部署方面的问题。

【问题讨论】:

什么意思?当然 C 和 C++ 编译成机器码。 如果您要求查看汇编程序输出,之前在此处询问/回答。 ***.com/questions/840321/… 您提到的所有编译器都会创建执行机器代码的程序。生成机器代码的确切时间只是不同的。 C# 有多个选项来确定确切的时间。使用抖动可能是最快的方法。如果不是,那么您可以使用 ngen.exe 提前生成机器代码。或者使用 .NET Native,它使用 C++ 编译器的后端,当您不想共享时,可能不会出现在卡片中。所以这并不重要,你只关心你在机器周期上花费了多少时间。你耳朵之间的那些。 向 OldProgrammer、Hans、Jeff D 致敬。我是一名 VeryOldLapsedProgrammer,最近又回来了。使用 C# 时,很明显 Build 生成了 IL,而 IL 又在运行时进行了 JIT。根本不是我的样子。如果 C++ 构建(编译和链接)为机器代码可执行文件,我会很高兴。基耶。 【参考方案1】:

所有 C/C++ 编译器都编译为本机机器代码,这就是为什么您可以直接寻址内存、拥有内联汇编器并关心您正在编译的系统上的 sizeof(int)。

【讨论】:

确实存在偶尔的 C++ 解释器。 除了作为实验玩具,C++ 解释者还有什么目的?你真的认为这值得投反对票吗? (不是我的反对票)显然不正确,MSVC++ 似乎有能力将普通的 C++ 代码(如 Hello, World)编译为 .Net。在这种情况下,您不能直接寻址内存或使用内联汇编程序。 (一般来说都是未定义的行为) 仅供参考,您确定 可以 直接从 .NET 访问内存(C# 有指针),或者获取 sizeof(int) 的值。内联汇编在混合模式 dll 中可用(使用带有原生 C++ 部分的 C++/CLI)。 @JeffD。 - 不是我的反对票。

如何将javascript代码编译为c++或java

...后的运行机制也完全不一样。C/C++源文件只能够用C/C++的编译器来编译。以GCC编译器为例,整个编译可以分为四步。第一步是预处理,包括语法检查等工作。gcc-Pabc.c第二步由源程序生产汇编语言代码。gcc-Sabc.c会生成abc.s文件,这... 查看详情

C代码编译为C++,但不是C [重复]

...nvertsomecodefromC++toC我有一些看起来是纯C的代码。当我告诉编译器(我使用VisualStudio2008Express)将其编译为c++时,它可以正常编译和链接。但是,当我尝试将其编译为C时,它会引发此错误: 查看详情

c++代码反编译

...其中win32程序,比如mfc程序,使用传统C++语言,是直接编译为机器指令的,最多反汇编到汇编代码但是.net程序,使用微软为.net平台扩展的C++/CLI语言(.net1.1时代有一种托管C++语言,是微软的早期作品,因为稳定性欠佳,已被C++/CL... 查看详情

c语言和c++和c#的区别

...单片机以及嵌入式系统开发。扩展资料:计算机语言包括机器语言、汇编语言、高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机... 查看详情

是否允许 C++ 编译器发出编译同一程序的不同机器代码?

】是否允许C++编译器发出编译同一程序的不同机器代码?【英文标题】:IsaC++compilerallowedtoemitdifferentmachinecodecompilingthesameprogram?【发布时间】:2011-03-0411:48:38【问题描述】:考虑一种情况。我们有一些特定的C++编译器、一组特定... 查看详情

是否允许 C++ 编译器发出编译同一程序的不同机器代码?

】是否允许C++编译器发出编译同一程序的不同机器代码?【英文标题】:IsaC++compilerallowedtoemitdifferentmachinecodecompilingthesameprogram?【发布时间】:2011-03-0411:48:38【问题描述】:考虑一种情况。我们有一些特定的C++编译器、一组特定... 查看详情

C# JIT 编译和 .NET

...nd.NET【发布时间】:2011-04-0801:17:57【问题描述】:我对JIT编译器如何工作的细节有些困惑。我知道C#编译为IL。第一次运行它是JIT的。这是否涉及将其翻译为本机代码?.NET运行时(作为虚拟机?)是否与JIT代码交互?我知道这很... 查看详情

C# 编译为 32/64 位,或任何 cpu? [复制]

...cpu进行编译的选项。这两个选项有什么区别?选择任何CPU是否只编译为中间 查看详情

c#编译过程

...可移植性。2.程序执行时,IL被CLR捕获,CLR激活内部的JIT编译器,将伪代码编译成针对特定CPU的机器语言。JIT:即时编译,在代码需要运行的时候才将对应的IL编译为本机指令,然后把结果保存到(GAC)用于将来对同一方法的调用... 查看详情

编译原理心得

一、编译原理是什么编译器是将汇编或高级计算机语言翻译为二进制机器语言代码的计算机程序。编译器将源程序(sourcelanguage)编写的程序作为输入,翻译产生目标语言(targetlanguage)机器代码的等价程序。通常地,源程序为... 查看详情

在 Visual Studio 2010 中编译“C”文件时,它是不是被编译为 C++ 文件?

...0,isitcompiledasaC++file?在VisualStudio2010中编译“C”文件时,它是否被编译为C++文件?【发布时间】:2014-03-1308:16:24【问题描述】:C和C++是不同的语言,我仍然可以在VisualStudio2010 查看详情

如何将 c、c++ 和 python 代码编译为“Released/Final”版本? [关闭]

...ed]【发布时间】:2014-02-2409:52:47【问题描述】:我想知道是否有办法编译C、C++和Python代码以便无法在Linux上对其进行逆向工程?我听说在Windows上有一些方法可以做到这一点,但我在 查看详情

将现有 C# 代码编译为 WebAssembly

...detoWebAssembly【发布时间】:2021-01-2612:31:30【问题描述】:是否可以将现有的C#代码编译为WebAssembly(.wasm),从而无需或几乎无需更改代码?我必须使用Blazor还是其他可能性?【问题讨论】:目前(.NET5.0),Blazor不会将您的代码编译为W... 查看详情

C# - 使用自定义配置在运行时编译 c# 代码

...】:2019-06-1811:18:31【问题描述】:我有一个问题,CodeDom编译器是否可以使用自定义配置(例如x64位或x86位)编译c#代码。默认情况下,它会将c#代码编译为具有“任何CPU”配置的.exe。编译c#代码:publicstaticstringBCS(st 查看详情

如何使用 C# 编译 C++ 代码。需要开发 C++ IDE [关闭]

】如何使用C#编译C++代码。需要开发C++IDE[关闭]【英文标题】:HowtocompileC++codeusingC#.NeedtodevelopaC++IDE[closed]【发布时间】:2014-05-0813:26:50【问题描述】:我对开发C++IDE很感兴趣,但为了方便和更好的UI,我想使用C#开发IDE。但是我遇... 查看详情

将 C# .net 4 代码编译为 .net 3.5?

】将C#.net4代码编译为.net3.5?【英文标题】:CompilingC#.net4codeto.net3.5?【发布时间】:2012-03-2201:56:02【问题描述】:我在VisualStudio2010中制作了一个最初针对.NET4.0的程序。但是,现在我需要针对.NET3.5而不是4.0。如何更改我的目标框... 查看详情

使用 emcc 将 C++ 代码编译为 WASM 的问题

】使用emcc将C++代码编译为WASM的问题【英文标题】:ProblemincompilationofC++codetoWASMusingemcc【发布时间】:2020-11-0415:31:03【问题描述】:我正在尝试将C++代码编译为WASM,但遇到了问题。我的C++代码包括dlib和OpenCV库。我已经为C++环境成... 查看详情

c++语言的原理是啥?

...的所有就有了高级语言比如c++用高级语言编写的程序得用编译器翻译成机器的识别的代码也就是二进制还有不懂得吗可以这么理解本回答被提问者采纳 参考技术B额!c++做出的是源文件,编译就是二进制代码需要编译器的代码分... 查看详情