0
我想建立一個「Hello World」 d與SConstruct項目,並獲得此輸出:使用SCons和DMD錯誤:無法識別的文件擴展名Ø
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編譯器生成與目標文件* .obj擴展名,而不是* .o,並且不能用* .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 vervion是2.064.2。
這不起作用。用你提供的SCons產生這一行'I. -c -ofsrc \ main.obj src \ main.d',根本不使用任何編譯器。使用'env = Environment'(ENV = os.environ,tools = ['default','dmd'])'scons命令告訴dmd生成* .o文件。 – Betelgeyser
當我發現這種情況發生在MinGW gcc編譯器的路徑處於'PATH'變量中時。最後,它開始工作'env = Environment(ENV = {'PATH':['C:\\ path \\ to \\ dmd \\ compiler']})'。這對我來說是可以接受的,但我想知道應該怎樣做纔對。 – Betelgeyser