Amiga.org

Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: EDanaII on December 02, 2011, 06:29:31 PM

Title: Compiling MUI++...
Post by: EDanaII on December 02, 2011, 06:29:31 PM
I've been messing around with various Amiga frameworks trying to see what they have to offer. First, looked at something called AFrame, mosly because I can get it to compile.

Now, I'm looking at MUIPlusPlus (http://aminet.net/package/dev/mui/MUIPlusPlus). This framework is similar to AFrame, but uses MUI as its foundation, making it potentially more desirable.

Unfortunately, when I tried compiling the examples, they failed with a number of reference errors, leading me to realize that it needed linking to a library. Ultimately, I discovered that the library doesn't exist.

The source code of that library, however, does exist, but when I tried compiling it, I got a number of errors like: BOOL does not name a type or ULONG does not name a type. Using Visual Studio, however, I can use the "Go to Definition" option and it takes me straight to exec/types.h. The path to this file is also defined in my makefile, so... why am I getting this error? Is there some option I'm not supplying to the compiler?

Clues appreciated...

Here is my current makefile:
Code: [Select]
# Project: PlusPlus
# Compiler: m68k-Amiga-OS3
# Compiler Type: MingW 3
# Makefile template for Visual Studio

CPP       = m68k-amigaos-g++.exe
CC        = m68k-amigaos-gcc.exe
WINDRES   = windres.exe
OBJ       = mui.o
LINKOBJ   = mui.o
LIBS      = -L"P:/Windows/AmiDevCpp/usr/local/amiga/m68k-amigaos/lib" -L"P:/Windows/AmiDevCpp/usr/local/amiga/m68k-amigaos/lib/libb/libnix"
INCS      = -I"W:\Amiga\Drives\Development\SDKs\Amiga\3.9\Include\include_h\; P:\Windows\AmiDevCpp\include\c++\3.4.2\backward; W:\Amiga\Drives\Development\MUI\PlusPlus\Include;"
CXXINCS   = -I"W:\Amiga\Drives\Development\SDKs\Amiga\3.9\Include\include_h\; P:\Windows\AmiDevCpp\include\c++\3.4.2\backward; W:\Amiga\Drives\Development\MUI\PlusPlus\Include;"
#RCINCS    = --include-dir ""
BIN       = mui
DEFINES   = -dAMIGA
CXXFLAGS  = $(CXXINCS) $(DEFINES) -s -noixemul
CFLAGS    = $(INCS) $(DEFINES) -s -noixemul
GPROF     = gprof.exe
RM        = rm -f
LINK      = m68k-amigaos-g++.exe

.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after

clean: clean-custom
$(RM) $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(LINK) $(LINKOBJ) -o "mui" $(LIBS)

mui.o: $(GLOBALDEPS) Source\Lib\mui.cpp
$(CPP) -c Source\Lib\\mui.cpp -o mui.o $(CXXFLAGS)
Title: Re: Compiling MUI++...
Post by: EDanaII on December 02, 2011, 09:06:30 PM
OK, I think I got it figured out. Just needed to add some more include files.

Now I got errors like this:
Code: [Select]
Error 81 error : `int CMUI_String::$_19' is not a static member of `class CMUI_String' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 1438 1 PlusPlus
Error 56 error : `ULONG CMUI_Window::$_17' is not a static member of `class CMUI_Window' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 837 1 PlusPlus
Error 61 error : `ULONG CMUI_Window::$_18' is not a static member of `class CMUI_Window' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 842 1 PlusPlus
Error 55 error : abstract declarator `ULONG' used as declaration W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 837 1 PlusPlus


Anyone got any clues regarding what's going on here?
Title: Re: Compiling MUI++...
Post by: 560SL on December 02, 2011, 11:21:14 PM
Not a C++ programmer myself, I prefer to stick to C for simplicity reasons, but those method names sure looks weird... "$_...".
Title: Re: Compiling MUI++...
Post by: TheBilgeRat on December 03, 2011, 10:36:28 AM
Quote from: EDanaII;669912
OK, I think I got it figured out. Just needed to add some more include files.

Now I got errors like this:
Code: [Select]
Error 81 error : `int CMUI_String::$_19' is not a static member of `class CMUI_String' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 1438 1 PlusPlus
Error 56 error : `ULONG CMUI_Window::$_17' is not a static member of `class CMUI_Window' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 837 1 PlusPlus
Error 61 error : `ULONG CMUI_Window::$_18' is not a static member of `class CMUI_Window' W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 842 1 PlusPlus
Error 55 error : abstract declarator `ULONG' used as declaration W:\Amiga\Drives\Development\MUI\PlusPlus\Source\Lib\\mui.cpp 837 1 PlusPlus


Anyone got any clues regarding what's going on here?


Usually when I get those kinds of errors in java, it has something to do with one class being declared static when the class it implements(implemented by?) is not.
Title: Re: Compiling MUI++...
Post by: Karlos on December 03, 2011, 11:15:35 AM
An identifier name starting with a dollar, though legal in C and C++ is not something I'd expect to see (might be the output of an anonymous namespace). There tend to be a fair few macros in BOOPSI based GUIs, perhaps one of these is not expanding properly?