Hi, i9 get whne crosscompiling c++ software (ZGloom):
...
hud.cpp:373:15: error: ‘to_string’ is not a member of ‘std’
pos += std::to_string(player.x.GetInt());
...
and with std::atoi, std::stoi too.
How can I "enable"/add std:: methods/functions?
1)Looking on internet I can change "to_string" to use a selfmade method/function.
2)Adding -std=c++11 doesn't solve anything.
TiA
EDIT1: solved part of the problem by compling x`c++ with clib2 (-mcrt=clib2), maybe using with newlib need some other args to add to compiler.
Now I "only" get this errors:
...
ppc-amigaos-g++ -gstabs -fpermissive -mcrt=clib2 -I/usr/local/amiga/ppc-amigaos/SDK/local/common/include -std=c++11 -c -o config.o config.cpp
config.cpp: In function ‘void Config::Init()’:
config.cpp:320:29: error: ‘stoi’ is not a member of ‘std’
configkeys = std::stoi(val);
...
EDIT2: solved stoi, by finding a replacement function (http://www.cplusplus.com/articles/D9j2Nwbp/), but linking pass fails, I assume 'cos the SDL2/.. objects are newlib and can't mix clib2 and newlib :-/
Do I need to add some "special" options/args to add to makefile to compile with c++ and newlib?
Try adding the following into a convenient header file:
Newlib does have the atoi() function. It just needs to be added to the std:: namespace, which is what the "using ::atoi;" does.
The stoi() implementation is not 100% correct as it doesn't throw any exceptions but depending on how it's used it might be good enough.
thx already found to_string and stoi replacement, will try with yours ASAP.
BTW now I get all objects compiled, but on linkng it fails, maybe I missed some libs/la or I put them in incorrect place in compiler/linker paths, or I need to add some more link libraries to build.
snippet of error I get:
ppc-amigaos-g++ hud.o font.o quick.o monsterlogic.o config.o iffhandler.o renderer.o script.o decrunchmania.o titlescreen.o gloommap.o gloommaths.o gamelogic.o objectgraphics.o soundhandler.o zgloom.o binresource.o menuscreen.o -lSDL2 -lSDL2_mixer -lxmp -lpthread -o ZGloom
zgloom.o: In function `fill_audio(void*, unsigned char*, int)':
zgloom.cpp:59: undefined reference to `xmp_play_buffer'
zgloom.o: In function `main':
zgloom.cpp:260: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:265: undefined reference to `xmp_start_player'
zgloom.cpp:344: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:349: undefined reference to `xmp_start_player'
zgloom.cpp:368: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:373: undefined reference to `xmp_start_player'
zgloom.cpp:413: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:418: undefined reference to `xmp_start_player'
zgloom.cpp:433: undefined reference to `xmp_end_player'
zgloom.cpp:439: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:444: undefined reference to `xmp_start_player'
zgloom.cpp:481: undefined reference to `xmp_end_player'
zgloom.cpp:500: undefined reference to `xmp_end_player'
zgloom.cpp:510: undefined reference to `xmp_end_player'
zgloom.cpp:533: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:538: undefined reference to `xmp_start_player'
zgloom.cpp:588: undefined reference to `xmp_end_player'
/usr/local/amiga/ppc-amigaos/SDK/local/newlib/lib/libSDL2_mixer.a(mixer.o): In function `Mix_LoadWAV_RW':
/home/Michael/SDL2_mixer-2.0.1/mixer.c:627: undefined reference to `SDL_LoadWAV_RW'
/usr/local/amiga/ppc-amigaos/SDK/local/newlib/lib/libSDL2_mixer.a(dynamic_modplug.o): In function `Mix_InitModPlug':
/home/Michael/SDL2_mixer-2.0.1/dynamic_modplug.c:98: undefined reference to `ModPlug_Load'
/home/Michael/SDL2_mixer-2.0.1/dynamic_modplug.c:98: undefined reference to `ModPlug_Load'
/home/Michael/SDL2_mixer-2.0.1/dynamic_modplug.c:99: undefined reference to `ModPlug_Unload'
/home/Michael/SDL2_mixer-2.0.1/dynamic_modplug.c:99: undefined reference to `ModPlug_Unload'
...
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
Solved compiling erros, now it's linkng showing some erros, IIRC the "position" in the linking command of some libs are important (maybe some lib aren't used/needed, but....), suggestions are welcome. TiA .-)
snippet of errors:
#make
ppc-amigaos-g++ hud.o font.o quick.o monsterlogic.o config.o binresource.o iffhandler.o renderer.o script.o decrunchmania.o titlescreen.o gloommap.o soundhandler.o gloommaths.o gamelogic.o objectgraphics.o zgloom.o menuscreen.o -lSDL2main -lSDL2_mixer -lxmp -lmikmod -lmodplug -lFLAC -lsmpeg -lvorbisfile -lvorbis -logg -lstdc++ -lSDL2 -lpthread -o ZGloom
zgloom.o: In function `fill_audio(void*, unsigned char*, int)':
zgloom.cpp:59: undefined reference to `xmp_play_buffer'
zgloom.o: In function `main':
zgloom.cpp:260: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:265: undefined reference to `xmp_start_player'
zgloom.cpp:344: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:349: undefined reference to `xmp_start_player'
zgloom.cpp:368: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:373: undefined reference to `xmp_start_player'
zgloom.cpp:413: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:418: undefined reference to `xmp_start_player'
zgloom.cpp:433: undefined reference to `xmp_end_player'
zgloom.cpp:439: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:444: undefined reference to `xmp_start_player'
zgloom.cpp:481: undefined reference to `xmp_end_player'
zgloom.cpp:500: undefined reference to `xmp_end_player'
zgloom.cpp:510: undefined reference to `xmp_end_player'
zgloom.cpp:533: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:538: undefined reference to `xmp_start_player'
zgloom.cpp:588: undefined reference to `xmp_end_player'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::reset_stream()':
MPEGstream.cpp:(.text+0x880): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x9ec): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::next_system_buffer()':
MPEGstream.cpp:(.text+0xb60): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xb98): undefined reference to `SDL_mutexP'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::next_packet(bool, bool)':
MPEGstream.cpp:(.text+0xd54): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0xd90): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xe5c): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::new_marker(int)':
MPEGstream.cpp:(.text+0xeb8): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0xedc): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xf64): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xfd8): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::seek_marker(MPEGstream_marker const*)':
MPEGstream.cpp:(.text+0x1030): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x10cc): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::copy_data(unsigned char*, int, bool)':
MPEGstream.cpp:(.text+0x123c): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x1338): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::garbage_collect()':
MPEGstream.cpp:(.text+0x1484): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x1584): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::insert_packet(unsigned char*, unsigned int, double)':
MPEGstream.cpp:(.text+0x15ec): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x16ac): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGsystem.o): In function `MPEGsystem::Read()':
MPEGsystem.cpp:(.text+0x1a64): undefined reference to `SDL_mutexP'
MPEGsystem.cpp:(.text+0x1acc): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x1ba4): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x1c80): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x1cd8): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x1cec): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGsystem.o): In function `MPEGsystem::TotalSize()':
MPEGsystem.cpp:(.text+0x1ea0): undefined reference to `SDL_mutexP'
MPEGsystem.cpp:(.text+0x1f58): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x201c): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x20e0): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x20fc): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGsystem.o): In function `MPEGsystem::TotalTime()':
MPEGsystem.cpp:(.text+0x2154): undefined reference to `SDL_mutexP'
MPEGsystem.cpp:(.text+0x220c): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x231c): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x25bc): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x29c4): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGsystem.o): In function `MPEGsystem::TimeElapsedAudio(int)':
MPEGsystem.cpp:(.text+0x2a40): undefined reference to `SDL_mutexP'
MPEGsystem.cpp:(.text+0x2af8): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x2bf8): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x2e90): undefined reference to `SDL_mutexV'
MPEGsystem.cpp:(.text+0x2eb4): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGsystem.o): In function `MPEGsystem::Seek(int)':
MPEGsystem.cpp:(.text+0x5504): undefined reference to `SDL_mutexP'
MPEGsystem.cpp:(.text+0x5664): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0xc58): undefined reference to `SDL_FreeYUVOverlay'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0xd28): undefined reference to `SDL_FreeYUVOverlay'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0xdf8): undefined reference to `SDL_FreeYUVOverlay'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::SetDisplay(SDL_Surface*, SDL_mutex*, void (*)(SDL_Surface*, int, int, unsigned int, unsigned int))':
MPEGvideo.cpp:(.text+0x12f4): undefined reference to `SDL_FreeYUVOverlay'
MPEGvideo.cpp:(.text+0x1328): undefined reference to `SDL_CreateYUVOverlay'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::MoveDisplay(int, int)':
MPEGvideo.cpp:(.text+0x152c): undefined reference to `SDL_mutexP'
MPEGvideo.cpp:(.text+0x155c): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::ScaleDisplayXY(int, int)':
MPEGvideo.cpp:(.text+0x15a4): undefined reference to `SDL_mutexP'
MPEGvideo.cpp:(.text+0x15d4): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGvideo.o): In function `MPEGvideo::SetDisplayRegion(int, int, int, int)':
MPEGvideo.cpp:(.text+0x1624): undefined reference to `SDL_mutexP'
MPEGvideo.cpp:(.text+0x1684): undefined reference to `SDL_FreeYUVOverlay'
MPEGvideo.cpp:(.text+0x16c0): undefined reference to `SDL_CreateYUVOverlay'
MPEGvideo.cpp:(.text+0x16dc): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(gdith.o): In function `MPEGvideo::DisplayFrame(vid_stream*)':
gdith.cpp:(.text+0x588): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0x598): undefined reference to `SDL_LockYUVOverlay'
gdith.cpp:(.text+0x8d4): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0x8f0): undefined reference to `SDL_DisplayYUVOverlay'
gdith.cpp:(.text+0x978): undefined reference to `SDL_UnlockYUVOverlay'
gdith.cpp:(.text+0x9d4): undefined reference to `SDL_mutexV'
gdith.cpp:(.text+0x9f4): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(gdith.o): In function `MPEGvideo::Filter(SMPEG_Filter*)':
gdith.cpp:(.text+0xab0): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0xadc): undefined reference to `SDL_mutexV'
/Devel/SDK/gcc/bin/../lib/gcc/ppc-amigaos/8.3.0/../../../libstdc++.a(eh_alloc.o): In function `__gnu_cxx::__mutex::lock()':
/var/lib/jenkins/workspace/native-gcc-8/native-build/gcc-native-build-8.3.0/ppc-amigaos/libstdc++-v3/include/ext/concurrence.h:150: undefined reference to `__gthread_active_p'
/Devel/SDK/gcc/bin/../lib/gcc/ppc-amigaos/8.3.0/../../../libstdc++.a(eh_alloc.o): In function `__gnu_cxx::__mutex::unlock()':
...
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
To get rid of gthread errors you need to build your objects and link the file with options "athread=native".
To get rif of most of SDL_* errors, you need correctly put SDL libs in place.
The one i dind't like its xmp_ errors, its like you didn't link wth libxmp library
Thx for the "-athread=native" tip. Now it only shows "1" error :-):
#make
ppc-amigaos-g++ hud.o font.o quick.o monsterlogic.o config.o binresource.o iffhandler.o renderer.o script.o decrunchmania.o titlescreen.o gloommap.o soundhandler.o gloommaths.o gamelogic.o objectgraphics.o zgloom.o menuscreen.o -athread=native -lSDL2main -lSDL2_mixer -lxmp -lmikmod -lmodplug -lFLAC -lsmpeg -lvorbisfile -lvorbis -logg -lSDL2 -lpthread -lstdc++ -o ZGloom
zgloom.o: In function `fill_audio(void*, unsigned char*, int)':
zgloom.cpp:59: undefined reference to `xmp_play_buffer'
zgloom.o: In function `main':
zgloom.cpp:260: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:265: undefined reference to `xmp_start_player'
zgloom.cpp:344: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:349: undefined reference to `xmp_start_player'
zgloom.cpp:368: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:373: undefined reference to `xmp_start_player'
zgloom.cpp:413: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:418: undefined reference to `xmp_start_player'
zgloom.cpp:433: undefined reference to `xmp_end_player'
zgloom.cpp:439: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:444: undefined reference to `xmp_start_player'
zgloom.cpp:481: undefined reference to `xmp_end_player'
zgloom.cpp:500: undefined reference to `xmp_end_player'
zgloom.cpp:510: undefined reference to `xmp_end_player'
zgloom.cpp:533: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:538: undefined reference to `xmp_start_player'
zgloom.cpp:588: undefined reference to `xmp_end_player'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::reset_stream()':
MPEGstream.cpp:(.text+0x880): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0x9ec): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::next_system_buffer()':
MPEGstream.cpp:(.text+0xb60): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xb98): undefined reference to `SDL_mutexP'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::next_packet(bool, bool)':
MPEGstream.cpp:(.text+0xd54): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0xd90): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xe5c): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(MPEGstream.o): In function `MPEGstream::new_marker(int)':
MPEGstream.cpp:(.text+0xeb8): undefined reference to `SDL_mutexP'
MPEGstream.cpp:(.text+0xedc): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xf64): undefined reference to `SDL_mutexV'
MPEGstream.cpp:(.text+0xfd8): undefined reference to `SDL_mutexV'
...
MPEGvideo.cpp:(.text+0x1624): undefined reference to `SDL_mutexP'
MPEGvideo.cpp:(.text+0x1684): undefined reference to `SDL_FreeYUVOverlay'
MPEGvideo.cpp:(.text+0x16c0): undefined reference to `SDL_CreateYUVOverlay'
MPEGvideo.cpp:(.text+0x16dc): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(gdith.o): In function `MPEGvideo::DisplayFrame(vid_stream*)':
gdith.cpp:(.text+0x588): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0x598): undefined reference to `SDL_LockYUVOverlay'
gdith.cpp:(.text+0x8d4): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0x8f0): undefined reference to `SDL_DisplayYUVOverlay'
gdith.cpp:(.text+0x978): undefined reference to `SDL_UnlockYUVOverlay'
gdith.cpp:(.text+0x9d4): undefined reference to `SDL_mutexV'
gdith.cpp:(.text+0x9f4): undefined reference to `SDL_mutexV'
/SDK/local/newlib/lib/libsmpeg.a(gdith.o): In function `MPEGvideo::Filter(SMPEG_Filter*)':
gdith.cpp:(.text+0xab0): undefined reference to `SDL_mutexP'
gdith.cpp:(.text+0xadc): undefined reference to `SDL_mutexV'
make: *** [ZGloom] Error 1
...
Yes I guess is the dependices between lib, that I need to put in correct order, any clues?
the xmp lib I got from os4depot xmp.lha, maybe is not enught, or I missed some files to add to my sdk.
THX
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
Me was linking libsmpeg and it shoudb be libsmpg2. now I need to fix the XMP error "only" :-)
#make
ppc-amigaos-g++ hud.o font.o quick.o monsterlogic.o config.o binresource.o iffhandler.o renderer.o script.o decrunchmania.o titlescreen.o gloommap.o soundhandler.o gloommaths.o gamelogic.o objectgraphics.o zgloom.o menuscreen.o -athread=native -lSDL2main -lSDL2_mixer -lxmp -lmikmod -lmodplug -lFLAC -lsmpeg2 -lvorbisfile -lvorbis -logg -lSDL2 -lpthread -lstdc++ -o ZGloom
zgloom.o: In function `fill_audio(void*, unsigned char*, int)':
zgloom.cpp:59: undefined reference to `xmp_play_buffer'
zgloom.o: In function `main':
zgloom.cpp:260: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:265: undefined reference to `xmp_start_player'
zgloom.cpp:344: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:349: undefined reference to `xmp_start_player'
zgloom.cpp:368: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:373: undefined reference to `xmp_start_player'
zgloom.cpp:413: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:418: undefined reference to `xmp_start_player'
zgloom.cpp:433: undefined reference to `xmp_end_player'
zgloom.cpp:439: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:444: undefined reference to `xmp_start_player'
zgloom.cpp:481: undefined reference to `xmp_end_player'
zgloom.cpp:500: undefined reference to `xmp_end_player'
zgloom.cpp:510: undefined reference to `xmp_end_player'
zgloom.cpp:533: undefined reference to `xmp_load_module_from_memory'
zgloom.cpp:538: undefined reference to `xmp_start_player'
zgloom.cpp:588: undefined reference to `xmp_end_player'
make: *** [ZGloom] Error 1
#
EDIT1: maybe the xmp port I use/have is too old or different as if doesn't have such fucbntions/methods :-/
The one I use/have it has:
EXPORT xmp_context xmp_create_context (void);
EXPORT int xmp_test_module (char *, struct xmp_test_info *);
EXPORT void xmp_free_context (xmp_context);
EXPORT int xmp_load_module (xmp_context, char *);
EXPORT void xmp_release_module (xmp_context);
EXPORT int xmp_player_start (xmp_context, int, int);
EXPORT int xmp_player_frame (xmp_context);
EXPORT void xmp_player_get_info (xmp_context, struct xmp_module_info *);
EXPORT void xmp_player_end (xmp_context);
EXPORT void xmp_inject_event (xmp_context, int, struct xmp_event *);
EXPORT char **xmp_get_format_list (void);
EXPORT int xmp_control (xmp_context, int, ...);
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
It can be that our libxml on os4depot is old one and didn't have those functions ? You need to check in includes from os4depot archve, if you have there those functions (just search over all libxml includes inside of archive). And if not, try to download latest version of libxml and check if it have there. And if yes, then it mean those functions are new ones, and need to port new version of libxmp. But if we have them in os4depot archve, then something else wrong.
Or maybe those functions are come from game itself , in some other object file which you forget to link with ?
its xmP (audo replayer) not xmL :-)
BIG THX to salass00 and kas1e!!!!
Anyway I "commented" out all audio stuff and....
http://jabirulo.byethost13.com/temp/zgloom_debug.7z
http://jabirulo.byethost13.com/temp/zgloom_stripped.7z
You need data files (free):
https://github.com/earok/GloomAmiga/archive/master.zip
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
Yeah, I mean XMP above, of course, XML was just a typo.
It looks like general XMP functions, strange that you have ufdef on linking. Games without audio are of no fun :)
:-)
BTW how "difficult" would be to add to zgloom (uses SDL2) to add openGL, just to use gfx card to resize window/gfx.
Would it require a total overhaul of the surces or just "changing" a couple of functions/methods?
TiA
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
The source code for XMP is available at:
http://xmp.sourceforge.net/
if you want to have a go at compiling it yourself.
All of the AmigaOS specific changes should be included there (IIRC) so it should only be a matter of doing a standard ./configure and make.
thx, downloaded, but there isa no confgure script to launch :-(
Will try to copy an existiing Makefile and change to use on amigaos4
OK using as "template" libSDL2 makefile and libXMP Makefile I created:
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
When there no ./configure script to launch, it mean you need to run "autogen.sh" firstly. It will create configure , then run configure, something like this:
And if all fine then Make. But you surely need to change some thing in xmp library to build amigaos4 version properly. If i remember right it not just ./configure ; make.
I think you maybe wrong install libxmp from os4depot ? I mean, maybe you tried to link with clib2 version of stub lib ? It can't be that standard basic xmp functions undefined.
There is no autogen.sh script niether :-(
the original libxmp I got from os4depot is the one from xmp.lha archive, and seems too old for ZGloom, as it uses functions/methods not available on os4depot's libxmp.
I need libxmp XMP_VERSION "4.5.0".
ZGloom uses (apart others) those functions, non existant on os4depot libxmp:
xmp_load_module_from_memory (xmp_context, void *, long);
xmp_load_module_from_file (xmp_context, void *, long);
EDIT1: ok, maybe I was downloading from bad site, (re)trying with XMP 4.4.1, hope this one works.
THX for all help.
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
If no autogen.sh, and no ./configure, then:
aclocal --force
autoconf -f
autoheader -f
automake -a -c -f
And you will have them.
Or, you can take for example any other Makefile (as i see you have Makefile.os2), copy it to Makefile_os4, and just replace there manually things. And then run make -f Makefile_os4
You should be able to generate the configure script from configure.ac using autoconf or something like that, but if you download one of the release archives you don't have to:
https://sourceforge.net/projects/xmp/files/libxmp/4.4.1/
yes, you're right. dowloaded such version and I'm tryng to compile static & shared versions of libxmp.
thx for tips/suggestions, will post results ASAP
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
ok, V4.4.1 libxmp.a using crosscompiler went fine :-)
But when linking to ZGloom I get:
Looks like it needs lixfdmaster.a, but I decided to go to "dirty" way, disabled XFD on XMP, recompiled lbxmp.a again and when linking to ZGloom no problem :-) not "correct way" to do, but will test it ASAP.
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
It seems that libxmp.a you build, was build with some inclues from xfd, or linked with them somehow. I assume pure libxml know nothing about xfdmaster from amiga, so it seems you maybe applied some amiga specific changes, or use old includes.
Anyway, as you do its not dirty way, its right way : when you build some game which need support of some type of music, to make size of binary smaller you can strip off all the other formats from music libraries you build.
For example, when need it i build lib_mixer, lib_modplug and lib_xmp with minimal set of support i need for game of choice, and then size of binary smaller.