Amiga.org
Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started 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:
# 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)
-
OK, I think I got it figured out. Just needed to add some more include files.
Now I got errors like this: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?
-
Not a C++ programmer myself, I prefer to stick to C for simplicity reasons, but those method names sure looks weird... "$_...".
-
OK, I think I got it figured out. Just needed to add some more include files.
Now I got errors like this: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.
-
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?