digitalmars.D - Something wrong with dmd's -c command?
- Andrej Mitrovic (115/116) Mar 25 2012 Response file:
Response file: dmd.rsp: compile.d ignored.d main.d parse.d serialize.d types.d util.d xml.d ae\utils\xml.d ae\utils\xmlrpc.d gen\common.d gen\typemaps.d gen\types.d gen\generator.d gen\util.d messagepack\msgpack.d -ofdoxy.exe $ dmd dmd.rsp OK, exe is built (win32). Now let's try compiling module-by-module via -c and then linking: make.bat: echo off dmd -c -I.. -ofcompile.obj compile.d dmd -c -I.. -ofignore.obj ignored.d dmd -c -I.. -ofmain.obj main.d dmd -c -I.. -ofparse.obj parse.d dmd -c -I.. -ofserialize.obj serialize.d dmd -c -I.. -oftypes.obj types.d dmd -c -I.. -ofutil.obj util.d dmd -c -I.. -ofxml.obj xml.d dmd -c -I.. -ofae_utils_xml.obj ae\utils\xml.d dmd -c -I.. -ofae_utils_xmlrpc.obj ae\utils\xmlrpc.d dmd -c -I.. -ofgen_common.obj gen\common.d dmd -c -I.. -ofgen_typemaps.obj gen\typemaps.d dmd -c -I.. -ofgen_types.obj gen\types.d dmd -c -I.. -ofgen_generator.obj gen\generator.d dmd -c -I.. -ofgen_util.obj gen\util.d dmd -c -I.. -ofmsgpack.obj messagepack\msgpack.d dmd compile.obj ignore.obj main.obj parse.obj serialize.obj types.obj util.obj xml.obj ae_utils_xml.obj ae_utils_xmlrpc.obj gen_common.obj gen_typemaps.obj gen_types.obj gen_generator.obj gen_util.obj msgpack.obj OPTLINK (R) for Win32 Release 8.00.12 Copyright (C) Digital Mars 1989-2010 All rights reserved. http://www.digitalmars.com/ctg/optlink.html main.obj(main) Error 42: Symbol Undefined _D6object54__T16AssociativeArrayTAyaTxS9doxyparse5types8VariableZ16Associat= iveArray6lengthMFNdZk main.obj(main) Error 42: Symbol Undefined _D6object58__T16AssociativeArrayTAyaTxS9doxyparse5types11FuncTypedefZ16Asso= ciativeArray6lengthMFNdZk main.obj(main) Error 42: Symbol Undefined _D6object53__T16AssociativeArrayTAyaTxS9doxyparse5types7TypedefZ16Associati= veArray6lengthMFNdZk main.obj(main) Error 42: Symbol Undefined _D6object52__T16AssociativeArrayTAyaTxS9doxyparse5types6DefineZ16Associativ= eArray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAyaTxiZ16AssociativeArray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTkTxAyaZ16AssociativeArray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAyaTxkZ16AssociativeArray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object112__T16AssociativeArrayTAyaTxS9doxyparse5t=F1=A5=B3=B51=04=CE=B2F= unctionBaseVE=10=C5=80=CA=A0T=03=CF=B1Z=0E=D1=9A=12?engthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object50__T16AssociativeArrayTAyaTxS9doxyparse5types4EnumZ16AssociativeA= rray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object32__T16AssociativeArrayTAyaTxAAyaZ16AssociativeArray6lengthMFNdZk xml.obj(xml) Error 42: Symbol Undefined _D6object112__T16AssociativeArrayTAyaTxS9doxyparse5t=F1=A5=B3=B51=04=CE=B2F= unctionBaseVE=10=C5=80=CA=A0T=03=CF=B0Z=0E=D1=9A=12?engthMFNdZk --- errorlevel 11Exit code: 11All of these seem related to associative arrays. If you demangle one of the symbols via std.demangle it becomes: property uint object.AssociativeArray!(immutable(char)[], const(doxyparse.types.FuncTypedef)).AssociativeArray.length() I can tell this is needed for the following symbol in my 'doxyparse.types' module: struct Member { FuncTypedef[string] funcTypedefs; } FuncTypedef is defined as: struct FuncTypedef { string ID; string name; string type; string[] parameters; string returnType; } There is nothing in the directory up from the current folder (-I..) except the base folder of the project, so I don't think DMD is picking up modules from unrelated directories. I can't test with older versions of DMD because my project then ICEs. I'd try with GDC, but apparently GDC has .length set as a ulong even though I'm running x86, so I get compilation errors there. I'll have to reduce this to make a test-case.. but has anyone had issues like these before?
Mar 25 2012