0

SConstruct を使用して「hello world」D プロジェクトをビルドしようとしており、次の出力が得られます。

D:\projects\test>scons
scons: Reading SConscript files ...
scons: done reading SConscript files.

scons: warning: No version of Visual Studio compiler found - C/C++ compilers most likely not set correctly
File "C:\Python27\Scripts\scons.py", line 192, in <module>
scons: Building targets ...
dmd -I. -c -ofsrc\main.o src\main.d
dmd -ofhello.exe src\main.o
Error: unrecognized file extension o
scons: *** [hello.exe] Error 1
scons: building terminated because of errors.

さらに、dmd コンパイラーが *.o ではなく *.obj 拡張子を持つオブジェクト ファイルを生成し、*.o ファイルを処理できないことを発見しました。

SCons が dmd オブジェクト ファイルのデフォルト出力を使用するようにしたり、*.obj ファイル拡張子を渡したりする方法はありますか? それともこれは単なるバグですか?

私の SConstruct ファイル:

import os
env = Environment(ENV=os.environ)
env.Object(target = 'hello', source = 'src/main.d')

私のプラットフォームは Windows 7 x86_64 です。

dmd バージョンは 2.064.2 です。

4

1 に答える 1

0

SCons に D コンパイラを使用するように指示する必要があります。これは、デフォルトでそうするとは思えないためです。これは、コンパイラをロードするだけでなく、対応する構築変数も設定します。これにより、とりわけ、求めているオブジェクト ファイルの拡張子が設定されます。

次のように環境を作成すると、D コンパイラと関連する構築変数が読み込まれます。

env=環境(ツール=['デフォルト', 'dmd'])

于 2014-01-13T08:38:55.187 に答える