gpt4 book ai didi

d - 如何在没有 D 运行时编译 D 应用程序?

转载 作者:行者123 更新时间:2023-12-04 11:27:14 28 4
gpt4 key购买 nike

我一直在努力解决这个问题,这让我很恼火。我了解 D 运行时库。它是什么,它做什么。我也明白你可以在没有它的情况下编译 D 应用程序。就像 XoMB 所做的那样。好吧,XoMB 定义了自己的运行时,但是在某些情况下,如果您不需要,则无需编写自己的运行时。我知道我正在使用的 DigitalMars D 编译器 (dmd) 在运行时的幕后做了很多事情,比如根据您的程序需要什么来发出对某些事物的引用。而且,每个程序的东西。所以你必须自己定义这些。我决定进行实验,尝试自己弄清楚并取得了很大进展。我的意思是让链接器吐出越来越少的错误。对于测试,我只想编译一个完整的准系统
应用程序,只是为了让事情在没有运行时的情况下工作。或者尽可能少的运行时间。这是我的单个源文件。

module main;

void _main()
{
int a = 2 + 3;
}

我编译: dmd -c main.d -defaultlib=

然后链接:link main.obj

这是我得到的错误:OPTLINK:警告 23:无堆栈和 OPTLINK:警告 134:无起始地址

你可以看到我尝试了 chaingng main 到 _main 来摆脱无起始地址错误,但是,
无论如何,没有帮助。我需要做些什么来消除这最后两个错误?如果我可以让它工作,我想我可以查找我需要实现的内容以获得更多功能。但是如果有人愿意帮助我解决这个问题,那将是非常感激的!

最佳答案

module main;
extern(C) __gshared void* _Dmodule_ref;
extern(C) int main() {
int a = 2 + 3;
return 0;
}

关于d - 如何在没有 D 运行时编译 D 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573289/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com