可执行文件&DLL过程[关闭]

问题描述 投票:-2回答:3

什么样的软件或编程语言,我已经学会了没有任何.DLL文件或其他形式独立创建单个可执行程序?

任何建议我将不胜感激!

windows operating-system hex machine-instruction
3个回答
3
投票

这是operating system特定的(而不是由语言本身定义)。了解更多关于linkers

您可能需要使用C ++ 11(或C ++ 14),并指示您的C ++编译器静态链接可执行文件。所以,你应该阅读你的编译器的文件;与GCC你可以pass -staticg++命令。

您可能还需要使用Go language。通常的编译器去尝试生成静态链接的可执行文件。

BTW,静态链接executable还有dependencies,例如其operating system kernel(也许公用事业和一些系统文件):显然,对于Windows静态链接的可执行文件将不能在Linux上运行。

(例如,在Linux,使用标准system(3)功能的任何程序默默地取决于/bin/sh ....)

在实践中,我一般不会推荐静态链接的C standard library,但情况因人而异。

当然,你需要一些source code editor编写代码(我喜欢GNU emacs)。有些人使用IDEs,但我更喜欢明确地运行编译命令(可能使用像build automation一些GNU make工具)。

(注意DEVC ++或码块是IDE,而不是一个compiler

注:我建议你阅读Operating Systems : Three Easy Pieces(自由downloadable,每个章节都有自己的PDF文件),以了解更多有关操作系统。


1
投票

一个真正独立的“可执行文件”是你闪到嵌入式设备的图像。您的图片可以(但并不需要)捆绑库如FreeRTOS操作系统,其功能作为一种小型的操作系统。除了实际的硬件,你的程序将完全自给自足。

否则,你至少受惠于已具备了操作系统,与获得“运行”支持库为你的语言(尽管这通常可以静态链接),可能最重要的是第三方库(这通常可能是静态链接太)。

有时候想自成体系的时候,你去,其实你的“节目”是不可执行的,在所有其他方向,到目前为止,但只是一个脚本来通过一个Python通过或进入或JavaScript或者VBScript解释。这实际上是自包含的对立面,但它是很好的便携如果你的所有目标平台存在该语言的实现。

上一个VM(Java,.NET)上运行的代码是一种它们之间中途的房子。


1
投票

视觉工作室:

Project->'project' Properties

Configuration Properties -> C++ -> Code Generation

Runtime Library - >多线程[调试]

不要使用多线程[调试] DLL

此外,将[调试]为调试版本和NOT [调试]的发布版本。您可以在左上角的“配置”下拉构建类型之间进行切换。

© www.soinside.com 2019 - 2024. All rights reserved.