DIP45: fixing the dllimport/dllexport issue

Benjamin Thaut code at benjamin-thaut.de
Sat Sep 7 14:41:00 PDT 2013


Am 07.09.2013 20:42, schrieb deadalnix:
> On Saturday, 7 September 2013 at 12:47:19 UTC, Benjamin Thaut wrote:
>> I propose that we add a command-line-paramter to the compiler (windows
>> only) which actually enables dllexport. So all behavior described in
>> the DIP will be enabled by default, but to actually make it mark
>> symbols with dllexport you have to specifiy a additional
>> command-line-parameter. We could call it "-dll" or something.
>>
>
> I have to think about it. But I'd like to avoid any special behavior for
> windows language side.
>
> I also kind of feel that we need to export lib1 as well, as you may not
> know what lib2 does with what it gets from lib1 (passing objects around
> for instance). So certainly at least some part of lib1 need to be exported.

I don't agree if that statement. If you have three libs. lib1, lib2 and 
lib3. And lib2 and lib3 link statically against lib1 you are going to 
get linker errors because both lib2 and lib3 contain the symbols of 
lib1. And you don't have any options to avoid that (unless you got into 
the source of lib1 and remove all export attributes, which might not 
even be possible because you don't have the source)


More information about the Digitalmars-d mailing list