Author |
Message |
rizzix
|
Posted: Sat Feb 26, 2005 11:52 am Post subject: Easy Linux Development: GNUStep |
|
|
Oh, finally the project is at a state in which it can be used without much worries on crashes, bugs etc.
This is great news, cuz GNUStep is programming made so simple, it's easier than Turing (well not entirely, it requires knowledge on Obj-C, Java or Ruby, and the MVC arch). Also, you write "less" code.
Yes it has support for the Ruby programming language through RIGS, and you could guess Java through JIGS.
Either way to visually see why it is "programming made easy" (and note easy) here's a flash demo right of their site for you: http://gnustep.org/experience/DevelopmentDemonstration.html
Some things to note:
GNUStep is basically the FSF continuing where OpenStep left off (actually GNUStep started anew). Some time ago NeXT went OpenSource and created OpenStep. NeXT was bought off by Apple, and right after Mac OS X was released. So you might have guessed, yes Mac OS development is just as easy as GNUStep (actually easier, and way more versatile and powerful, not to mention loaded with more features).
But hey, GNUStep as u see, isin't all that bad. Infact its much easier than KDE or Gnome development. The UI may be ugly (although they claim it is theme-able), but the feel is great!
Unfortunately the last time i checked the windows port of it does not support GUI development yet...
So for those linux folks.. enjoy!
EDIT: learn more about it @ http://gnustep.org/ |
|
|
|
|
|
Sponsor Sponsor
|
|
|
wtd
|
Posted: Sat Feb 26, 2005 12:50 pm Post subject: (No subject) |
|
|
Cocoa is just an extension of OpenStep. There wasno starting anew.
Hence why the classes in Apple's API start with NS (NeXTSTEP). |
|
|
|
|
|
rizzix
|
Posted: Sat Feb 26, 2005 2:29 pm Post subject: (No subject) |
|
|
oh sorry i wasn't clear , i was refering to GNUStep. *fixed* |
|
|
|
|
|
rizzix
|
Posted: Sat Feb 26, 2005 11:08 pm Post subject: (No subject) |
|
|
hmm apparently the gui base is ported to windows.. unfortunately it does not come with Gorm or ProjectCenter
i tried downloading and compiling those two, but with no success. the compilation fails.. anyone interested in helping me get these two apps successfully ported? |
|
|
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 2:01 am Post subject: (No subject) |
|
|
i get the following error compiling Gorm: code: | ./shared_obj/IBInspector.o(.text+0xee):IBInspector.m: undefined reference to `_imp__IBWillCloseDocumentNotification' |
ny ideaz? |
|
|
|
|
|
wtd
|
Posted: Sun Feb 27, 2005 2:32 am Post subject: (No subject) |
|
|
My guess is that the linker isn't seeing some "willCloseDocumentNotification" method. |
|
|
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 10:51 am Post subject: (No subject) |
|
|
it isin't yes. so i decided to convert them to #define constants (they were NSString variables).. works. i fixed the next error that occurs as well (although this is different) basically all u need to do is create a GNUmakefile.preamble that it is missing. works.
the 3rd err is similar to the 1st err, but unfortunately i can;t simply #define those variable (NSString again) in this case.. i need (i'm forced to) it moved intto the library, it autogenerates (corrects) them as exported variables for the DLL after changing them to #define constants. hmm. anyhow. i'm having a hard time getting this one to work. |
|
|
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 11:08 am Post subject: (No subject) |
|
|
details on the 3rd err: code: | Linking palette 0Menus ...
./shared_obj/GormMenuEditor.o(.text+0x6c1):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x6f9):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x12f7):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1897):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1c2f):GormMenuEditor.m: undefined reference to `findAllSubmenus'
./shared_obj/GormMenuEditor.o(.text+0x1d84):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1dac):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1df1):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1e01):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1e1d):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1e33):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x1f6a):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x22e1):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x22eb):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x27a2):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x298c):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x2999):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuEditor.o(.text+0x2c21):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x2ead):GormMenuEditor.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/GormMenuEditor.o(.text+0x2eb6):GormMenuEditor.m: undefined reference to `_imp__GormLinkPboardType'
./shared_obj/GormMenuInspectors.o(.data+0x6dc):GormMenuInspectors.m: undefined reference to `__objc_class_name_IBInspector'
./shared_obj/GormNSMenu.o(.text+0x304):GormNSMenu.m: undefined reference to `_imp__IBSelectionChangedNotification'
./shared_obj/GormNSMenu.o(.text+0x573):GormNSMenu.m: undefined reference to `_imp__IBSelectionChangedNotification'
./shared_obj/main.o(.text+0x64d):main.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/main.o(.text+0xa5e):main.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/main.o(.text+0xe42):main.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/main.o(.text+0x11cc):main.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/main.o(.text+0x14fc):main.m: undefined reference to `_imp__IBMenuPboardType'
./shared_obj/main.o(.text+0x1849):main.m: more undefined references to `_imp__IBMenuPboardType' follow
./shared_obj/main.o(.data+0xa0c):main.m: undefined reference to `__objc_class_name_IBPalette'
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: no export definition file provided.
Creating one, but that may not be what you want
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: gcc exited with status 1
make[3]: *** [0Menus.palette/./0Menus.dll] Error 1
make[2]: *** [0Menus.all.palette.variables] Error 2
make[2]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes/0Menus'
make[1]: *** [internal-all] Error 2
make[1]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes'
make: *** [internal-all] Error 2 |
note the lines: code: | c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: no export definition file provided.
Creating one, but that may not be what you want
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: gcc exited with status 1 | hmm it literally genereates a heck a lot of .h files.
EDIT: it does not generate .h files but coppies and then links them.. so fixing the original source fixed the problem. (same trick as err #1) |
|
|
|
|
|
Sponsor Sponsor
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 11:40 am Post subject: (No subject) |
|
|
but now there's a 4th err. code: | Linking palette 0Menus ...
./shared_obj/GormMenuEditor.o(.text+0x1c0f):GormMenuEditor.m: undefined reference to `findAllSubmenus'
./shared_obj/GormMenuInspectors.o(.data+0x6dc):GormMenuInspectors.m: undefined reference to `__objc_class_name_IBInspector'
./shared_obj/GormNSMenu.o(.text+0x304):GormNSMenu.m: undefined reference to `_imp__IBSelectionChangedNotification'
./shared_obj/GormNSMenu.o(.text+0x573):GormNSMenu.m: undefined reference to `_imp__IBSelectionChangedNotification'
./shared_obj/main.o(.data+0xa4c):main.m: undefined reference to `__objc_class_name_IBPalette'
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: no export definition file provided.
Creating one, but that may not be what you want
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: gcc exited with status 1
make[3]: *** [0Menus.palette/./0Menus.dll] Error 1
make[2]: *** [0Menus.all.palette.variables] Error 2
make[2]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes/0Menus'
make[1]: *** [internal-all] Error 2
make[1]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes'
make: *** [internal-all] Error 2 |
aaah linker problems.. can u believe that.. all linker problems. everything compiles fine.. but does not link successfully. |
|
|
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 12:00 pm Post subject: (No subject) |
|
|
fixed it a bit (basically the trick the the same as err #1, but here u look at the IBEditors.(h|m) files, and u got to compile some .m files that are not already compiled in the Gorm base directory)
so it is brought down to: code: | Linking palette 0Menus ...
./shared_obj/GormMenuInspectors.o(.data+0x6dc):GormMenuInspectors.m: undefined reference to `__objc_class_name_IBInspector'
./shared_obj/main.o(.data+0xa4c):main.m: undefined reference to `__objc_class_name_IBPalette'
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: no export definition file provided.
Creating one, but that may not be what you want
c:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: gcc exited with status 1
make[3]: *** [0Menus.palette/./0Menus.dll] Error 1
make[2]: *** [0Menus.all.palette.variables] Error 2
make[2]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes/0Menus'
make[1]: *** [internal-all] Error 2
make[1]: Leaving directory `/home/johnmark/Gorm-0.9.0/Palettes'
make: *** [internal-all] Error 2 | now i'd really appreciate help |
|
|
|
|
|
wtd
|
Posted: Sun Feb 27, 2005 12:22 pm Post subject: (No subject) |
|
|
Yes, Objective-C is a much more dynamic language than C or C++. Hence the linker errors.
Also, you may run into serious problems with trying to interchange NSString and "const char*". The NSString class provides a fair amout of functionality. |
|
|
|
|
|
rizzix
|
Posted: Sun Feb 27, 2005 1:10 pm Post subject: (No subject) |
|
|
i didn't change it to const char* just replaced it with @"whatever" (they were constants)
the problem really is linking. for some reason. linking does not work well on windows.
problem right now is that the IBInspector and IBPalette classes which are supposingly archived into a library (Gorm.dll) do not link well with the GormMenuInspectors.o and main.o objct files. i dont see why the darn linker dosent link these object files to the Gorm.dll library. its really annoying. |
|
|
|
|
|
|