私はこれを永遠に理解しようとしてきました、そしてそれは私を悩ませ始めています. 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: 開始アドレスがありません
開始アドレスなしエラーを取り除くために main を _main にチェーンしようとしたことがわかりますが、とにかく役に立ちませんでした。これらの最後の 2 つのエラーを解決するにはどうすればよいですか? もし私がそれを機能させることができれば、より多くの機能を機能させるために実装する必要があるものを調べることができると思います. しかし、誰かが私を助けてくれるなら、それは非常にありがたいです!