I have two files. The one has Objective-C functions and interfaces declarations written in D. Another file is main app and it imports the first and uses its functions.

Imported file: http://codepad.org/jqdBb6sh
Main file: http://codepad.org/0gKBqKxi

When I compile them in one command it run without problems.
dmd main.d domaindir.d -L-framework -LFoundation

But I want domaindir.d to be static library and link main.d against this library. So I do:

dmd -lib domaindir.d
dmd main.d -I. -L-framework -LFoundation domaindir.a

The second command prints warning:

ld: warning: can't parse __DATA/__objc_imageinfo section in domaindir.a(domaindir_5_397.o)

When I try to run ./main it fails:

2016-04-30 13:05:55.733 main[15762:685588] *** NSForwarding: warning: selector (0x1040f5e58) for message 'defaultManager' does not match selector known to Objective C runtime (0x7fff8aeed3af)-- abort 2016-04-30 13:05:55.734 main[15762:685588] +[NSFileManager defaultManager]: unrecognized selector sent to class 0x7fff7baaad28 2016-04-30 13:05:55.736 main[15762:685588] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSFileManager defaultManager]: unrecognized selector sent to class 0x7fff7baaad28'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff95fab03c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff99ac176e objc_exception_throw + 43 2 CoreFoundation 0x00007fff95fadfad +[NSObject(NSObject) doesNotRecognizeSelector:] + 205 3 CoreFoundation 0x00007fff95ef3e24 ___forwarding___ + 1028 4 CoreFoundation 0x00007fff95ef3998 _CF_forwarding_prep_0 + 120 5 main 0x00000001040baf58 D9domaindir9domainDirFNemmbZAya + 56 6 main 0x00000001040ba9cb _Dmain + 283 7 main 0x00000001040d515c D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 40 8 main 0x00000001040d5090 D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv + 36 9 main 0x00000001040d5101 D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZv + 45 10 main 0x00000001040d5090 D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv + 36 11 main 0x00000001040d4ff6 _d_run_main + 498 12 main 0x00000001040baa80 main + 16 13 libdyld.dylib 0x00007fff92ee25c9 start + 1 14 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

Using dmd v2.071.0 on OS X 10.10.5

Reply via email to