rdmd and extern(C)
Nick Sabalausky
a at a.a
Wed Dec 22 22:31:29 PST 2010
"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message
news:iethab$2dj9$1 at digitalmars.com...
> On 12/22/10 12:13 PM, spir wrote:
>> Hello,
>>
>> Is it possible use rdmd (to automagically link against imported D
>> modules), when also calling C funcs? I tried to add the C file at the end
>> of the building command, like eg (removed all dmd options):
>> rdmd --build-only -ofmyProg myProg.d myCFuncs.o
>> but rdmd does not seem to transmit additional files to link against to
>> dmd. (In addition to the ones guessed from imports.)
>>
>> [Also, we would be glad to get some feedback when rdmd fails: currently
>> it ends silently. (At the very minimum: "Failed to compile/link." At
>> best, some more accurate messages such as "Cannot find imported module
>> 'foo.d'.")]
>>
>
> Looks like a good enhancement for rdmd. That it doesn't "fail
> successfully" is a bug.
>
@spir: rdmd's command-line syntax is like this:
rdmd {args to dmd and rdmd} app.d {args sent to app.exe}
So anything after the first *.d param is automatically considered a param
for when rdmd runs the app your building, not for rdmd/dmd. Of course, if
you're using --build-only, then such params just simply get ignored. In
short, you have to do it like this:
rdmd --build-only -ofmyProg myCFuncs.o myProg.d
Unfortunately, that still doesn't work with the official version of rdmd.
However...
@Andrei: I submitted an rdmd patch for this not too long ago:
http://d.puremagic.com/issues/show_bug.cgi?id=4928
It fixes this problem for object files, static library files, ".def" files
and response files.
More information about the Digitalmars-d
mailing list