Thread overview
Linker error with dmd when trying to generate wxWidgets wrapper on Windows (msys2/mingw-w64)
Nov 26, 2015
Vincent R
Nov 27, 2015
Kagamin
Nov 30, 2015
Vincent R
Dec 01, 2015
Luis
Dec 01, 2015
Vincent R
Dec 09, 2015
Vincent R
November 26, 2015
Hi,

I have a problem to generate D wrapper for wxWidgets (wxD) on msys2/mingw64.
Here is how to reproduce it:

1) Install msys2 from here http://msys2.github.io/

2) Launch msys2 terminal and add dmc/dmd to PATH

$ mkdir tmp && cd tmp
$ export PATH="C:\Developer\D\dm\bin":"C:\Developer\D\dmd2\windows\bin":$PATH
$ wget https://github.com/wxWidgets/wxWidgets/releases/download/v2.8.12/wxWidgets-2.8.12.tar.gz
$ cd wxWidgets-2.8.12/build/msw
$ make -f makefile.dmc
$ export WXDIR=/home/Vincent/tmp/wxWidgets-2.8.12
$ cd ~/tmp
$ git clone https://github.com/vrichomme/wxd.git
$ cd wxd/src
$ make
...
Warning: Public '_D2wx8TreeCtrl10TreeItemId6__ctorMFPvZC2wx8TreeCtrl10TreeItemId' already in library, redefinition ignored.

Then when I try to generate some samples I have an error about the same symbol:

$ cd Samples/

dmd -c -version=wx28 -version=__WXMSW__ -version=ANSI -I..\.. Font.d
Font.d(15): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
..\..\wx\common.d(151): Deprecation: function wx.common.new_Rectangle is deprecated
..\..\wx\common.d(151): Deprecation: function wx.common.new_Rectangle is deprecated
Font.d(667): Deprecation: implicitly overriding base class method wx.FontMisc.FontEnumerator.Facenames with Font.MyFontEnumerator.Facenames deprecated; add 'override' attribute

dmd -g -of..\..\bin\Font.exe Font.obj ..\..\wxd.lib ..\..\wxc.lib C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxbase28d.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxbase28d_xml.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxmsw28d_core.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxmsw28d_adv.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxmsw28d_html.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxmsw28d_xrc.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxtiffd.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxjpegd.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxpngd.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxzlibd.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxregexd.lib  C:/Developer/msys64/home/Vincent/tmp/wxWidgets-2.8.12\lib\dmc_lib\wxexpatd.lib   kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib    -L/EXETYPE:NT -L/SU:WINDOWS:4.0
OPTLINK (R) for Win32  Release 8.00.17
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
..\..\wxd.lib(TreeCtrl)  Offset B471FH Record Type 00C3
 Error 1: Previous Definition Different : _D2wx8TreeCtrl10TreeItemId6__ctorMFPvZC2wx8TreeCtrl10TreeItemId
C:\Developer\msys64\home\Vincent\tmp\wxWidgets-2.8.12\lib\dmc_lib\wxbase28d.lib(dircmn)
 Error 168: >64K Global Types


So I don't know if the bug is inside the wrapper or the compiler/linker.
I should add that I have the same issue with gdc.

Need someone to look at it.

Thanks





November 27, 2015
The bug report is https://issues.dlang.org/show_bug.cgi?id=15324
November 30, 2015
On Friday, 27 November 2015 at 09:56:10 UTC, Kagamin wrote:
> The bug report is https://issues.dlang.org/show_bug.cgi?id=15324

Just hope it will be fixed soon because I gave up D 7 years ago (too many bugs, war between phobos, tango, very young language) and now I realize it still very complicated to use it (at least on windows).
December 01, 2015
On Monday, 30 November 2015 at 09:23:33 UTC, Vincent R wrote:
> On Friday, 27 November 2015 at 09:56:10 UTC, Kagamin wrote:
>> The bug report is https://issues.dlang.org/show_bug.cgi?id=15324
>
> Just hope it will be fixed soon because I gave up D 7 years ago (too many bugs, war between phobos, tango, very young language) and now I realize it still very complicated to use it (at least on windows).

Yeah, on Linux simply just works. On Windows, there is more issues...
December 01, 2015
On Tuesday, 1 December 2015 at 10:21:11 UTC, Luis wrote:
> On Monday, 30 November 2015 at 09:23:33 UTC, Vincent R wrote:
>> On Friday, 27 November 2015 at 09:56:10 UTC, Kagamin wrote:
>>> The bug report is https://issues.dlang.org/show_bug.cgi?id=15324
>>
>> Just hope it will be fixed soon because I gave up D 7 years ago (too many bugs, war between phobos, tango, very young language) and now I realize it still very complicated to use it (at least on windows).
>
> Yeah, on Linux simply just works. On Windows, there is more issues...

Not even sure it works on linux because on the bug report above, platform is linux...
December 09, 2015
On Tuesday, 1 December 2015 at 16:46:21 UTC, Vincent R wrote:
> On Tuesday, 1 December 2015 at 10:21:11 UTC, Luis wrote:
>> On Monday, 30 November 2015 at 09:23:33 UTC, Vincent R wrote:
>>> On Friday, 27 November 2015 at 09:56:10 UTC, Kagamin wrote:
>>>> The bug report is https://issues.dlang.org/show_bug.cgi?id=15324
>>>
>>> Just hope it will be fixed soon because I gave up D 7 years ago (too many bugs, war between phobos, tango, very young language) and now I realize it still very complicated to use it (at least on windows).
>>
>> Yeah, on Linux simply just works. On Windows, there is more issues...
>
> Not even sure it works on linux because on the bug report above, platform is linux...

Do we know when it will be fixed because I would like to keep on progressing on my project and if it takes too much time I will use another language (go language is my next candidate) ?