Thread overview | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 11, 2006 harmonia & build | ||||
---|---|---|---|---|
| ||||
build expects to see a "main" function inside the file sent to it thru the command line. Harmonia doesn't work that way. The main function is somewhere else!! How can I get build to realize this fact and properly invoke the linker to build an exe file instead of a lib file? I tried passing the win32application.d file to build, but I got some wierd link errors! ----------------------- E:\Hasan\Coding\harmonia\svn\samples\browser>build browser.d C:\dmd\src\phobos\harmonia\ui\native\win32application.d -full -clean TODO (cursorSize): make this through SystemMetrics C:\dmd\bin\..\..\dm\bin\link.exe C:\dmd\src\phobos\harmonia\ui\native\win32application+browser,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined _D8harmonia2ui6native11win32window21RegisterWindowClassesFZv C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined __Class_8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined _D8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT5_ctorFAuAuuZC8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined _D8harmonia2ui6window6Window13_currentEventC8harmonia2ui6events5Event C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined _D8harmonia2ui6native11win32window5Popup8doEventsFZb C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application) Error 42: Symbol Undefined _D8harmonia2ui11application11Application8doEventsFZb browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia2ui11application10FileDialog browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2io6mmfile6MMFile4openFAuZC8harmonia2io6mmfile6MMFile browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui8commands11FileCommand4OpenC8harmonia2ui8commands7Command browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui8commands11FileCommand4ExitC8harmonia2ui8commands7Command browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2gx8geometry4rect5widthFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2gx8geometry5point6opCallFiiZS8harmonia2gx8geometry5point browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2gx8geometry4size6opCallFiiZS8harmonia2gx8geometry4size browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2gx8geometry4rect6opCallFS8harmonia2gx8geometry5pointS8harmonia2gx8geometry4sizeZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2gx8geometry4rect6heightFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events12EventCommandZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui11application11Application7onStartFPFZvZPFZv browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia2ui4menu4Menu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui4menu4Menu5_ctorFAuZC8harmonia2ui4menu4Menu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5_ctorFE8harmonia2ui6window6Window4TYPEC8harmonia2ui6widget6WidgetZC8harmonia2ui6window6Window browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia2ui10containers7toolbar8ToolBand browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui10containers7toolbar8ToolBand5_ctorFZC8harmonia2ui10containers7toolbar8ToolBand browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia2ui4menu7MenuBar browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui4menu7MenuBar5_ctorFZC8harmonia2ui4menu7MenuBar browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia4html4view8HtmlView browser.obj(browser) Error 42: Symbol Undefined _D8harmonia4html4view8HtmlView5_ctorFZC8harmonia4html4view8HtmlView browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window8extenderFC6ObjectZC6Object browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window8extenderFZC6Object browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window13doContextMenuFbZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window12setFocusNextFbZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window14getNextTabStopFC8harmonia2ui6widget6WidgetbZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5ownerFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5ownerFZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window7closingFKbZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9destroyedFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window7createdFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5movedFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window7resizedFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9showModalFDFZbZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9isVisibleFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5stateFE8harmonia2ui6window6Window5STATEkZE8harmonia2ui6window6Window5STATE browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5stateFZE8harmonia2ui6window6Window5STATE browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window6updateFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window10setCaptureFC8harmonia2ui6widget6WidgetZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window12restoreFocusFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window13commandTargetFZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window8setFocusFC8harmonia2ui6widget6WidgetbZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window17adjustWindowPlaceFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window6renderFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window10windowTypeFZE8harmonia2ui6window6Window4TYPE browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window13windowCaptionFAuZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window13windowCaptionFZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window11windowPlaceFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window11windowPlaceFZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window8finalizeFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window10initializeFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5_dtorFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets12layoutBlocksFKS8harmonia2gx8geometry4rectZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets10layoutFlowFKS8harmonia2gx8geometry4rectZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6valuesFHAuS3std5boxer3boxZk browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6valuesFZHAuS3std5boxer3box browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets11descendantsFbZS8harmonia2ui7widgets7Widgets9DEEP_ENUM browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets8backwardFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array4ENUM browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7forwardFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array4ENUM browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7opCat_rFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7opCat_rFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets5opCatFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets5opCatFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets11opCatAssignFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets11opCatAssignFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7opSliceFkkZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7opSliceFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets13opIndexAssignFC8harmonia2ui6widget6WidgetkZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7opIndexFkZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets9lastIndexFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets5clearFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7isEmptyFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7indexOfFC8harmonia2ui6widget6WidgetZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6removeFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6insertFiAC8harmonia2ui6widget6WidgetZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets3popFZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets4pushFAC8harmonia2ui6widget6WidgetZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6removeFiZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets6insertFiC8harmonia2ui6widget6WidgetZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets4pushFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6themes5theme5Style browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget13stopAnimationFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7animateFS8harmonia2gx8geometry4rectE8harmonia2ui5utils9ANIMATIONDFZvZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget6detachFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets16applyDescendantsFDFKC8harmonia2ui6widget6WidgetZibZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget12isAncestorOfFC8harmonia2ui6widget6WidgetZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget15isCommandTargetFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9isInFocusFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8setFocusFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8takenOutFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7takenInFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget6cursorFE8harmonia2ui6widget6Widget6CURSORZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9stopTimerFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget10startTimerFiZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5indexFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4iconFZC8harmonia2gx6images4Icon browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4textFAuZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4textFZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7tabStopFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8attachedFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window6windowFZC8harmonia2ui6window6Window browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9hideCaretFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9showCaretFS8harmonia2gx8geometry4rectZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7captureFbZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets4findFS8harmonia2gx8geometry5pointZC8harmonia2ui6widget6Widget browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget19contextMenuCommandsFZAC8harmonia2ui8commands7Command browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget13onContextMenuFbZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget10onFocusOutFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9onFocusInFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window2onFC8harmonia2ui6events11EventWidgetZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7onTimerFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events12EventControlZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events8EventKeyZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window2onFC8harmonia2ui6events12EventPointerZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window7refreshFS8harmonia2gx8geometry4rectZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7refreshFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window11controlTypeFZE8harmonia2ui11definitions11ControlType browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5themeFZC8harmonia6themes5theme5Theme browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5styleFC8harmonia6themes5theme5StyleZC8harmonia6themes5theme5Style browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window5styleFZC8harmonia6themes5theme5Style browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window8graphicsFZC8harmonia2gx8graphics8Graphics browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7enabledFbZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7enabledFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7visibleFZb browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9screenPosFZS8harmonia2gx8geometry5point browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9screenPosFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry5point browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9windowPosFZS8harmonia2gx8geometry5point browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6window6Window9windowPosFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry5point browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget12doRepositionFZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9optHeightFiZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9optHeightFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8optWidthFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9maxHeightFiZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9maxHeightFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8maxWidthFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9minHeightFiZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9minHeightFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8minWidthFZi browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget11clientPlaceFZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7paddingFZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget6marginFZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry4sizeZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5placeFZS8harmonia2gx8geometry4rect browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets11drawContentFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget14drawBackgroundFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4drawFC8harmonia2gx8graphics8GraphicsZv browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4nameFAuZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4nameFZAu browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget6parentFZC8harmonia2ui7widgets7Widgets browser.obj(browser) Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8toStringFZAa browser.obj(browser) Error 42: Symbol Undefined __Class_8harmonia2ui6window6Window --- errorlevel 158 |
March 11, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hasan Aljudy | "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dutvqf$1pek$1@digitaldaemon.com... > build expects to see a "main" function inside the file sent to it thru the > command line. > Harmonia doesn't work that way. The main function is somewhere else!! 1) Windows GUI application has WinMain() function instead of main(). 2) Harmonia tries to isolate you from this platform specific details (e.g. you don't need to reproduce "message pump" in each your application), this is why WinMain function is a part of Harmonia implementation. You don't need to write WinMain each time. Please see: http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication > > How can I get build to realize this fact and properly invoke the linker to build an exe file instead of a lib file? > > I tried passing the win32application.d file to build, but I got some wierd link errors! I don't know. Would appreciate if someone will tell me. You should be able to pass to build.exe name of your main.d file and build target type - exe. Probably build.exe needs some additional flags in command line? I don't know. Andrew Fedoniouk. http://terrainformatica.com |
March 11, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Fedoniouk | Yeah, I realize the thing about the main function being an implementation detail. I think when build sees the WinMain() in the win32application.d it will try to build an executable. Now, win32application.d is eventually seen by "build" as it tries to add the imported files. The problem is, When I tried this yesterday, harmonia was inside the phobos source directory; it turned out that build "ignores" phobos modules!! I discovered this when I used the -V switch on build. I tried to move harmonia to somewhere else, and it seemed to work better, but still produces errors. There were a couple of problems .. First, harmonia uses a different version of std.boxer from what's in phobos. I had to change the std.boxer that came with harmonia to somethign else (I made it hboxer) and edit a couple of files to fix the imports. The second problem was, some modules have names that don't match the path where they reside, so I had to fix those. e.g. harmonia/string.d is module harmonia.utils.string When I fixed all that, I got a series of errors along the lines of .. ------------------------------------------------------------------ C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090FFH Record Type 0091 Error 1: Previous Definition Different : _MAILSLOT_WAIT_FOREVER C:\dmd\bin\..\lib\phobos.lib(windows) Offset 0911AH Record Type 0091 Error 1: Previous Definition Different : _INVALID_HANDLE_VALUE C:\dmd\bin\..\lib\phobos.lib(windows) Offset 09139H Record Type 0091 Error 1: Previous Definition Different : _INVALID_SET_FILE_POINTER C:\dmd\bin\..\lib\phobos.lib(windows) Offset 09157H Record Type 0091 Error 1: Previous Definition Different : _INVALID_FILE_SIZE C:\dmd\bin\..\lib\phobos.lib(windows) Offset 092DEH Record Type 0091 (......) ------------------------------------------------------------------ and so on .. The good news is, build was trying to build an .exe This is what I got before the error list: --------------------------------------------------------------------- Wrong conversion! TODO: selected and value attributes TODO: selected and value attributes TODO (cursorSize): make this through SystemMetrics C:\dmd\bin\..\..\dm\bin\link.exe C:\dmd\src\other\harmonia\themes\theme+((..........))+C:\dmd\src\other\harmonia\ui\controls\editbox,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved ----------------------------------------------------------------------- I thought the clurpit was hboxer (the boxer module that harmonia uses), I just thought that maybe for some reason, the linker thinks the boxer implementation is in phobos.lib I tried to edit harmonia to use the std.boxer in phobos, it wasn't easy or fun at all, and in the end I still got the exact same kind of errors above. I thought maybe it's the windows headers that harmonia uses, but at that I was tired of trying to fix it. So I stopped working on it. Does anyone know what does this kind of error messege indicates? C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE Andrew Fedoniouk wrote: > "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dutvqf$1pek$1@digitaldaemon.com... > >>build expects to see a "main" function inside the file sent to it thru the command line. >>Harmonia doesn't work that way. The main function is somewhere else!! > > > 1) Windows GUI application has WinMain() function instead of main(). > 2) Harmonia tries to isolate you from this platform specific details (e.g. you don't need to reproduce "message pump" in each your application), this is why WinMain function is a part of Harmonia implementation. You don't need to write WinMain each time. > > Please see: > http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication > > >>How can I get build to realize this fact and properly invoke the linker to build an exe file instead of a lib file? > > >>I tried passing the win32application.d file to build, but I got some wierd link errors! > > > I don't know. Would appreciate if someone will tell me. > You should be able to pass to build.exe name of your main.d file and > build target type - exe. > > Probably build.exe needs some additional flags in command line? I don't know. > > Andrew Fedoniouk. > http://terrainformatica.com > > > |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hasan Aljudy | "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:duvka2$1erk$1@digitaldaemon.com... > Yeah, I realize the thing about the main function being an implementation detail. > > I think when build sees the WinMain() in the win32application.d it will try to build an executable. > > Now, win32application.d is eventually seen by "build" as it tries to add the imported files. > > The problem is, When I tried this yesterday, harmonia was inside the phobos source directory; it turned out that build "ignores" phobos modules!! I discovered this when I used the -V switch on build. > > I tried to move harmonia to somewhere else, and it seemed to work better, but still produces errors. > > There were a couple of problems .. > First, harmonia uses a different version of std.boxer from what's in > phobos. > I had to change the std.boxer that came with harmonia to somethign else (I > made it hboxer) and edit a couple of files to fix the imports. I tried to use boxter from phobos but D does not like templates to be in library. Did something change in this area? > > The second problem was, some modules have names that don't match the path where they reside, so I had to fix those. e.g. harmonia/string.d is module harmonia.utils.string > > When I fixed all that, I got a series of errors along the lines of .. > > ------------------------------------------------------------------ > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 > Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090FFH Record Type 0091 > Error 1: Previous Definition Different : _MAILSLOT_WAIT_FOREVER > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 0911AH Record Type 0091 > Error 1: Previous Definition Different : _INVALID_HANDLE_VALUE > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 09139H Record Type 0091 > Error 1: Previous Definition Different : _INVALID_SET_FILE_POINTER > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 09157H Record Type 0091 > Error 1: Previous Definition Different : _INVALID_FILE_SIZE > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 092DEH Record Type 0091 > (......) > ------------------------------------------------------------------ > > and so on .. > > The good news is, build was trying to build an .exe > This is what I got before the error list: > > --------------------------------------------------------------------- > Wrong conversion! > TODO: selected and value attributes > TODO: selected and value attributes > TODO (cursorSize): make this through SystemMetrics > C:\dmd\bin\..\..\dm\bin\link.exe > C:\dmd\src\other\harmonia\themes\theme+((..........))+C:\dmd\src\other\harmonia\ui\controls\editbox,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi; > > OPTLINK (R) for Win32 Release 7.50B1 > Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved > ----------------------------------------------------------------------- > > I thought the clurpit was hboxer (the boxer module that harmonia uses), I just thought that maybe for some reason, the linker thinks the boxer implementation is in phobos.lib > > I tried to edit harmonia to use the std.boxer in phobos, it wasn't easy or fun at all, and in the end I still got the exact same kind of errors above. > > I thought maybe it's the windows headers that harmonia uses, but at that I was tired of trying to fix it. So I stopped working on it. > > Does anyone know what does this kind of error messege indicates? > > C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 > Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE > I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions. BTW: what will happen if you will just run build.bat from harmonia root folder? Will it build samples on your machine? Andrew. > Andrew Fedoniouk wrote: >> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dutvqf$1pek$1@digitaldaemon.com... >> >>>build expects to see a "main" function inside the file sent to it thru >>>the command line. >>>Harmonia doesn't work that way. The main function is somewhere else!! >> >> >> 1) Windows GUI application has WinMain() function instead of main(). >> 2) Harmonia tries to isolate you from this platform specific details >> (e.g. you don't need to reproduce "message pump" in each your >> application), this is why WinMain function is a part of Harmonia >> implementation. You don't need to write WinMain each time. >> >> Please see: http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication >> >> >>>How can I get build to realize this fact and properly invoke the linker to build an exe file instead of a lib file? >> >> >>>I tried passing the win32application.d file to build, but I got some wierd link errors! >> >> >> I don't know. Would appreciate if someone will tell me. >> You should be able to pass to build.exe name of your main.d file and >> build target type - exe. >> >> Probably build.exe needs some additional flags in command line? I don't know. >> >> Andrew Fedoniouk. >> http://terrainformatica.com >> >> >> > |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Fedoniouk | The supplied build.bat works fine. but I don't want to have to bother with make files! I've never used make files with C++, never with D, and I don't intend to use them in the future, specially not with D! Andrew Fedoniouk wrote: <snip> > I tried to use boxter from phobos but D does not like templates to be > in library. Did something change in this area? I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue. <snip> >>Does anyone know what does this kind of error messege indicates? >> >>C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 >> Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE >> > > > I suspect that this means that windows.d defintions were included twice. > Harmonia has its own set of Win API deifinitions. I thought about that, but didn't really know what I should do. Windows definition are just definitions, I think the implementation is not supposed to be in phobos, but rather in some lib/dll in the WINDOWS\system32 folder (or something like that). I just discovered .. MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error list is a windows constant too! I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that. |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hasan Aljudy | "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dv0c0n$2grl$1@digitaldaemon.com... > The supplied build.bat works fine. > but I don't want to have to bother with make files! I've never used make > files with C++, never with D, and I don't intend to use them in the > future, specially not with D! I am not asking you to use make :) I just need to verify that you have everything in place you are dealing with problems of build utility and not with Harmonia itself. This is a bit different story, eh? OT: I would suggest to grab VS 6 somewhere if you don't like makefiles. There is a .dsw file - workspace file for VS (release and debug modes supported) > > Andrew Fedoniouk wrote: > <snip> >> I tried to use boxter from phobos but D does not like templates to be in library. Did something change in this area? > > I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue. I beleive it is a bad idea to put any templated stuff in phobos. > > > <snip> >>>Does anyone know what does this kind of error messege indicates? >>> >>>C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 >>> Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE >>> >> >> >> I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions. > > I thought about that, but didn't really know what I should do. > Windows definition are just definitions, I think the implementation is not > supposed to be in phobos, but rather in some lib/dll in the > WINDOWS\system32 folder (or something like that). > > I just discovered .. > MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error > list is a windows constant too! > > I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that. I think that build.exe is too smart here. It should not include anything non referenced from modules of the project. Or at least it should be some command line options for saying that. Andrew. |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Fedoniouk | I noticed a comment in the make file .. #native\win32.d - do not compile it as it is just a 'header' so I looked in the build documentation, and found that inserting version(build) { pragma(nolink); } will tell build to not link this file, so I added it to harmonia/native/win32.d and it compiled fine .. BUT When I run it, I get an "access voilation" messege and then the program exits. Andrew Fedoniouk wrote: > "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dv0c0n$2grl$1@digitaldaemon.com... > >>The supplied build.bat works fine. >>but I don't want to have to bother with make files! I've never used make files with C++, never with D, and I don't intend to use them in the future, specially not with D! > > > I am not asking you to use make :) > > I just need to verify that you have everything in place > you are dealing with problems of build utility > and not with Harmonia itself. > > This is a bit different story, eh? > > OT: I would suggest to grab VS 6 somewhere if you don't like makefiles. > There is a .dsw file - workspace file for VS (release and debug modes supported) > > > >>Andrew Fedoniouk wrote: >><snip> >> >>>I tried to use boxter from phobos but D does not like templates to be >>>in library. Did something change in this area? >> >>I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue. > > > I beleive it is a bad idea to put any templated stuff in phobos. > > >> >><snip> >> >>>>Does anyone know what does this kind of error messege indicates? >>>> >>>>C:\dmd\bin\..\lib\phobos.lib(windows) Offset 090E3H Record Type 0091 >>>>Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE >>>> >>> >>> >>>I suspect that this means that windows.d defintions were included twice. >>>Harmonia has its own set of Win API deifinitions. >> >>I thought about that, but didn't really know what I should do. >>Windows definition are just definitions, I think the implementation is not supposed to be in phobos, but rather in some lib/dll in the WINDOWS\system32 folder (or something like that). >> >>I just discovered .. >>MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error list is a windows constant too! >> >>I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that. > > > I think that build.exe is too smart here. > It should not include anything non referenced from modules of the project. > Or at least it should be some command line options for saying that. > > Andrew. > > > > > |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hasan Aljudy | Hasan Aljudy wrote: > I noticed a comment in the make file .. > #native\win32.d - do not compile it as it is just a 'header' > > so I looked in the build documentation, and found that inserting > version(build) { pragma(nolink); } > will tell build to not link this file, so I added it to > harmonia/native/win32.d > > and it compiled fine .. BUT > When I run it, I get an "access voilation" messege and then the program exits. > When I turn on the -debug switch, the messege becomes: >ERROR: Access Voilation >while processing win message #0x0 Here's the stack frame from windbg 00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6themes5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d @ 303] 01 image00400000!D8harmonia2ui6widget6Widget5styleFZC8harmonia6themes5theme5Style+0x3f [C:\dmd\src\other\harmonia\ui\widget.d @ 187] 02 image00400000!D8harmonia2ui7widgets97__T10ScrollableTC8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelTZ10Scrollable11clientPlaceFZS8harmonia2gx8geometry4rect+0x48 [C:\dmd\src\other\harmonia\html\view.d @ 385] 03 image00400000!D8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelT4htmlFAaAuZb+0x8f [C:\dmd\src\other\harmonia\html\view.d @ 143] 04 image00400000!D7samples7testbed7MyFrame5_ctorFZC7samples7testbed7MyFrame+0x91 [browser.d @ 48] 05 image00400000!D7samples7testbed11_staticCtorFZv14__funcliteral1FZv+0x20 [browser.d @ 33] 06 image00400000!D8harmonia2ui6native16win32application17NativeApplication10initializeFAuZv+0x80 [C:\dmd\src\other\harmonia\ui\native\win32application.d @ 100] 07 image00400000!WinMain+0xb7 [C:\dmd\src\other\harmonia\ui\native\win32application.d @ 496] 08 image00400000!WinMainCRTStartup+0xaa WARNING: Stack unwind information not available. Following frames may be wrong. 09 kernel32!RegisterWaitForInputIdle+0x49 |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hasan Aljudy | "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dv0luu$2to5$1@digitaldaemon.com... > Hasan Aljudy wrote: >> I noticed a comment in the make file .. >> #native\win32.d - do not compile it as it is just a 'header' >> >> so I looked in the build documentation, and found that inserting >> version(build) { pragma(nolink); } >> will tell build to not link this file, so I added it to >> harmonia/native/win32.d >> >> and it compiled fine .. BUT >> When I run it, I get an "access voilation" messege and then the program >> exits. >> > > When I turn on the -debug switch, the messege becomes: > > >ERROR: Access Voilation > >while processing win message #0x0 > > Here's the stack frame from windbg > > 00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6themes5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d @ 303] It is here: return Theme.defaultTheme.themeStyle(id); Seems like module harmonia.themes.pathfinder; was not included by build.exe. It has: static this() { // install this as a default theme defaultTheme = new PathfinderTheme(); } module harmonia.themes.pathfinder; is theme implementation and has no direct external references. You need to tell to build.exe somehow that it must include it. > 01 > image00400000!D8harmonia2ui6widget6Widget5styleFZC8harmonia6themes5theme5Style+0x3f > [C:\dmd\src\other\harmonia\ui\widget.d @ 187] > 02 > image00400000!D8harmonia2ui7widgets97__T10ScrollableTC8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelTZ10Scrollable11clientPlaceFZS8harmonia2gx8geometry4rect+0x48 > [C:\dmd\src\other\harmonia\html\view.d @ 385] > 03 > image00400000!D8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelT4htmlFAaAuZb+0x8f > [C:\dmd\src\other\harmonia\html\view.d @ 143] > 04 > image00400000!D7samples7testbed7MyFrame5_ctorFZC7samples7testbed7MyFrame+0x91 > [browser.d @ 48] > 05 image00400000!D7samples7testbed11_staticCtorFZv14__funcliteral1FZv+0x20 > [browser.d @ 33] > 06 > image00400000!D8harmonia2ui6native16win32application17NativeApplication10initializeFAuZv+0x80 > [C:\dmd\src\other\harmonia\ui\native\win32application.d @ 100] > 07 image00400000!WinMain+0xb7 > [C:\dmd\src\other\harmonia\ui\native\win32application.d @ 496] > 08 image00400000!WinMainCRTStartup+0xaa > WARNING: Stack unwind information not available. Following frames may be > wrong. > 09 kernel32!RegisterWaitForInputIdle+0x49 |
March 12, 2006 Re: harmonia & build | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Fedoniouk | Andrew Fedoniouk wrote:
> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:dv0luu$2to5$1@digitaldaemon.com...
>
>>Hasan Aljudy wrote:
>>
>>>I noticed a comment in the make file ..
>>>#native\win32.d - do not compile it as it is just a 'header'
>>>
>>>so I looked in the build documentation, and found that inserting
>>>version(build) { pragma(nolink); }
>>>will tell build to not link this file, so I added it to
>>>harmonia/native/win32.d
>>>
>>>and it compiled fine .. BUT
>>>When I run it, I get an "access voilation" messege and then the program exits.
>>>
>>
>>When I turn on the -debug switch, the messege becomes:
>>
>>
>>>ERROR: Access Voilation
>>>while processing win message #0x0
>>
>>Here's the stack frame from windbg
>>
>>00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6themes5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d @ 303]
>
>
> It is here:
> return Theme.defaultTheme.themeStyle(id);
>
> Seems like module harmonia.themes.pathfinder;
> was not included by build.exe.
>
> It has:
> static this()
> {
> // install this as a default theme
> defaultTheme = new PathfinderTheme();
> }
>
> module harmonia.themes.pathfinder; is theme implementation
> and has no direct external references.
>
> You need to tell to build.exe somehow that it must include it.
>
Ah! Thanks!
I added an import for harmonia.themes.pathfinder and now it works for half a second (shows a window) but still produces an access voilation!!
while processing win mesage #0x200
Any other modules you know which are needed but not referenced?!
/me goes to check the call stack ..
ok, I think this one is harmonia.ui.tooltip
let me try ..
(after 20 seconds ...)
yup! seems to work fine now!! :D
|
Copyright © 1999-2021 by the D Language Foundation