UFO:Alien Invasion
Development => Coding => Topic started by: Wizard^^ on December 19, 2008, 04:31:39 pm
-
Hi.
I need help.
Every time I try and compile with mingw32/msys I get
checking for SDL_mixer.h... yes
checking for library containing Mix_OpenAudio... no
configure: error: You must have the SDL_mixer development libraries
Also when tring to build in CodeBlocks I get
||=== ufo, windows ===|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|error: syntax error before "SDL_Thread"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|error: syntax error before "SDL_Thread"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|warning: no semicolon at end of struct or union|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|error: syntax error before '}' token|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: type defaults to `int' in declaration of `renderer_threadstate_t'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: data definition has no type or storage class|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|error: syntax error before "r_threadstate"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: type defaults to `int' in declaration of `r_threadstate'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: data definition has no type or storage class|
||=== Build finished: 4 errors, 5 warnings ===|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|warning: no semicolon at end of struct or union|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|error: syntax error before '}' token|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: type defaults to `int' in declaration of `renderer_threadstate_t'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: data definition has no type or storage class|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|error: syntax error before "r_threadstate"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: type defaults to `int' in declaration of `r_threadstate'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: data definition has no type or storage class|
||=== Build finished: 6 errors, 10 warnings ===|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|error: syntax error before "SDL_Thread"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|warning: no semicolon at end of struct or union|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|error: syntax error before '}' token|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: type defaults to `int' in declaration of `renderer_threadstate_t'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: data definition has no type or storage class|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|error: syntax error before "r_threadstate"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: type defaults to `int' in declaration of `r_threadstate'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: data definition has no type or storage class|
||=== Build finished: 9 errors, 15 warnings ===|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|error: syntax error before "SDL_Thread"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|205|warning: no semicolon at end of struct or union|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|error: syntax error before '}' token|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: type defaults to `int' in declaration of `renderer_threadstate_t'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|207|warning: data definition has no type or storage class|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|error: syntax error before "r_threadstate"|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: type defaults to `int' in declaration of `r_threadstate'|
E:\Coding\source\ufoai\src\client\cl_renderer.h|209|warning: data definition has no type or storage class|
||=== Build finished: 12 errors, 20 warnings ===|
my systeminfo is
OS Name: Microsoft(R) Windows(R) XP Professional x64 Edition
OS Version: 5.2.3790 Service Pack 2 Build 3790
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: Wizard^^
System Type: x64-based PC
Processor(s): 4 Processor(s) Installed.
[01]: AMD64 Family 16 Model 2 Stepping 3 AuthenticAMD ~2508 Mhz
[02]: AMD64 Family 16 Model 2 Stepping 3 AuthenticAMD ~2508 Mhz
[03]: AMD64 Family 16 Model 2 Stepping 3 AuthenticAMD ~2508 Mhz
[04]: AMD64 Family 16 Model 2 Stepping 3 AuthenticAMD ~2508 Mhz
I would like to get this working so I can test the game while also learning to code...
-
where have you taken c::B and mingw distrib?
-
I got it from here http://szklo.eu.org/~mattn/Codeblocks.zip
-
I don't know whether this also has to be done for Codeblocks, but I found that my msys/mingw was searching for sdl headers in wrong directory (during configure). Fixed it like stated here (http://ufoai.ninex.info/wiki/index.php/Talk:MinGW) (step 3 of "compile on windows").
Edit: I assume you tried to run ./configure to get that "error: You must have the SDL_mixer development libraries". For Codeblocks this seems to be the same reason (can't find SDL.h). For configure there should be a config.log which could give you some more hints why configure failed. (as the wrong directory in my case)
-
I got it from here http://szklo.eu.org/~mattn/Codeblocks.zip
I think that's the wrong one. Get the one here (http://ufoai.streetofeyes.com/Codeblocks.zip).
-
Ok the new c::B is working but not msys.
I wonder if its a 32 bit library issue? As I'm running a 64 bit OS..
-
what is the error for msys? I assume you tried to run ./configure - that produces a config.log which states all steps (and the little programs that are build and executed to test various settings). Please have a look at that config.log (some lines before end) or post it here. I don't know whether it is a 64bit issue, config.log could help.
-
In my experience sometimes changing the build target from "windows" to "windows_debug" helps in successfully compiling the program. I don't know if that will fix the problem in your particular case, but if you haven't tried it it might be worth a try.
I assume you tried to run ./configure...
If I recall I believe that is for compiling on Linux, with the command-line. It looks to me like Wizard is attempting to build the program under 64-bit Windows with Codeblocks, which is done differently.
-
If I recall I believe that is for compiling on Linux, with the command-line. It looks to me like Wizard is attempting to build the program under 64-bit Windows with Codeblocks, which is done differently.
Also when tring to build in CodeBlocks [...]
I remember I had this error myself. ./configure works for msys environment (which would not be needed for codeblocks) (even for cygwin, but not all dependencies are there in cygwin).
Wizard^^, please provide more details.
-
Ok here is some of the config.log, its to much to put it all in as its over the 20000 limit.
the is in line 722 to 917
configure:8609: checking libintl.h presence
configure:8624: gcc -E conftest.c
configure:8630: $? = 0
configure:8644: result: yes
configure:8672: checking for libintl.h
configure:8680: result: yes
configure:8700: checking for library containing gettext
configure:8741: gcc -o conftest.exe -g -O2 conftest.c >&5
conftest.c:39: warning: conflicting types for built-in function 'gettext'
C:/DOCUME~1/Wizard^^/LOCALS~1/Temp/cck9aaaa.o: In function `main':E:/Coding/source/ufoai/conftest.c:43: undefined reference to `gettext'
collect2: ld returned 1 exit status
configure:8747: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 4
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_INTP 4
| #define HAVE_WINSOCK2_H 1
| #define HAVE_LIBWS2_32 1
| #define HAVE_AI_NUMERICSERV 0
| #define HAVE_STRNCASECMP 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_ZLIB_H 1
| #define HAVE_JPEGLIB_H 1
| #define HAVE_LIBINTL_H 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char gettext ();
| int
| main ()
| {
| return gettext ();
| ;
| return 0;
| }
configure:8741: gcc -o conftest.exe -g -O2 conftest.c -lintl >&5
conftest.c:39: warning: conflicting types for built-in function 'gettext'
configure:8747: $? = 0
configure:8775: result: -lintl
configure:8804: checking for sdl-config
configure:8820: found /usr/local/bin/sdl-config
configure:8831: result: yes
configure:8877: checking SDL.h usability
configure:8894: gcc -c -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c >&5
configure:8900: $? = 0
configure:8914: result: yes
configure:8918: checking SDL.h presence
configure:8933: gcc -E -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c
configure:8939: $? = 0
configure:8953: result: yes
configure:8981: checking for SDL.h
configure:8989: result: yes
configure:9035: checking SDL_mixer.h usability
configure:9052: gcc -c -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c >&5
configure:9058: $? = 0
configure:9072: result: yes
configure:9076: checking SDL_mixer.h presence
configure:9091: gcc -E -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c
configure:9097: $? = 0
configure:9111: result: yes
configure:9139: checking for SDL_mixer.h
configure:9147: result: yes
configure:9166: checking for library containing Mix_OpenAudio
configure:9207: gcc -o conftest.exe -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c -lintl >&5
C:/DOCUME~1/Wizard^^/LOCALS~1/Temp/ccYBbaaa.o: In function `SDL_main':E:/Coding/source/ufoai/conftest.c:45: undefined reference to `Mix_OpenAudio'
e:/Coding/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
configure:9213: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 4
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_INTP 4
| #define HAVE_WINSOCK2_H 1
| #define HAVE_LIBWS2_32 1
| #define HAVE_AI_NUMERICSERV 0
| #define HAVE_STRNCASECMP 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_ZLIB_H 1
| #define HAVE_JPEGLIB_H 1
| #define HAVE_LIBINTL_H 1
| #define HAVE_SDL_H 1
| #define HAVE_SDL_MIXER_H 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char Mix_OpenAudio ();
| int
| main ()
| {
| return Mix_OpenAudio ();
| ;
| return 0;
| }
configure:9207: gcc -o conftest.exe -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main conftest.c -lSDL_mixer -lintl >&5
e:/Coding/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
configure:9213: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 4
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_INTP 4
| #define HAVE_WINSOCK2_H 1
| #define HAVE_LIBWS2_32 1
| #define HAVE_AI_NUMERICSERV 0
| #define HAVE_STRNCASECMP 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_ZLIB_H 1
| #define HAVE_JPEGLIB_H 1
| #define HAVE_LIBINTL_H 1
| #define HAVE_SDL_H 1
| #define HAVE_SDL_MIXER_H 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char Mix_OpenAudio ();
| int
| main ()
| {
| return Mix_OpenAudio ();
| ;
| return 0;
| }
configure:9241: result: no
configure:9251: error: You must have the SDL_mixer development libraries
"@ Destructavator" yes this is how you compile with linux, but the MSYS+minGW32 gives you the option to use the same commands in windows.
-
the linker flags should (usually) be:
-lmingw32 -lSDLmain -lSDL -mwindows
patches are welcome ,)
-
I don't know why during configure no sdl linker flags are used.
Step 5 of my walkthrough (http://ufoai.ninex.info/wiki/index.php/Talk:MinGW#Compile%20on%20Windows) states a workaround - you could temporarly change sdl-config to include the linking flags in compile flags. You can remove that parts from Makefile -> SDL_CFLAGS after configure (it leads to many warnings "linking is not done" otherwise)
-
I looked at that before and could not find where to put "-lmingw32 -lSDLmain -lSDL -mwindows" from --libs to --cflags
as it is already there.
#!/bin/sh
prefix=/usr/local/cross-tools/i386-mingw32
exec_prefix=${prefix}
exec_prefix_set=no
libdir=${exec_prefix}/lib
#usage="\
#Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]"
usage="\
Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]"
if test $# -eq 0; then
echo "${usage}" 1>&2
exit 1
fi
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | LC_ALL="C" sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--prefix=*)
prefix=$optarg
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
;;
--prefix)
echo $prefix
;;
--exec-prefix=*)
exec_prefix=$optarg
exec_prefix_set=yes
;;
--exec-prefix)
echo $exec_prefix
;;
--version)
echo 1.2.12
;;
--cflags)
echo -I${prefix}/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main
;;
--libs)
echo -L${exec_prefix}/lib -lmingw32 -lSDLmain -lSDL -mwindows
;;
--static-libs)
# --libs|--static-libs)
echo -L${exec_prefix}/lib -lmingw32 -lSDLmain -lSDL -mwindows
;;
*)
echo "${usage}" 1>&2
exit 1
;;
esac
shift
done
-
but it's not used - maybe the wrong sdl-config is used? (at least i didn't see the linker flags in the output you posted above - but maybe i was just blind)
-
that is what I tried to tell above: configure seems to use only cflags, not libs. Add them to cflags for configure. After configure run, these are added into makefile definitions, so you have to remove them there. I don't know whether this is something intended for configure or whether there should be some other checks for that.
[...]
--cflags)
echo -I${prefix}/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -lmingw32 -lSDLmain -lSDL -mwindows
-
our configure script is broken anyway - it's not using the detected values during build - Tron is crying about this, too. as his include dirs are detected properly by configure but not used by the makefiles. anyone who knows autotools better should have a closer look here.
-
Smegin' hell still not working :(
but hey I'm learning lots ;D
Autotools hey.. I'm going to play with that now :o
-
>:(
Well I aint getting any closer.
Is any one else running Windows XP x64?
-
I don't have 64-bit Windows right now, but you can give this a try to see if it runs on your system:
http://www.destructavator.com/public/ufoai_2_3Dev_r21433.zip
-
@all no offense ;)
I had (still have) the same problem XPsp2 32bit
.) the first is
this problem of yours
http://ufoai.ninex.info/forum/index.php?topic=3174.msg21963#msg21963
can be solved by editing mingw\bin\sdl_config file
prefix=/usr/local/cross-tools/i386-mingw32
to
prefix=/mingw
mingw is at /mingw inside msys environment (c:\mingw on the real machine)
.) the 2nd problem
is the ufoai configure file
I think the config file tries to verify that some special modules are installed
it shall be done by a search for this special string.
But as far as i can tell this codeblock is broken.
undefined reference to `Mix_OpenAudio'
| #ifdef __cplusplus
| extern "C"
| #endif
| char Mix_OpenAudio ();
| int
| main ()
| {
| return Mix_OpenAudio ();
| ;
| return 0;
| }
char Mix_OpenAudio ();
shall be a function
but the syntax is wrong
and btw the whole codeblock is useless 'couse
there is nothing passed into the function.
The rest inside configure is so badly formated ...
OK, leave that behind
your post at
http://ufoai.ninex.info/forum/index.php?topic=3174.msg21957#msg21957
scoll inside your code down to the last line
configure:9241: result: no
open configure go to line 9239
and change
ac_cv_search_Mix_OpenAudio=yes
Its "false positive" 'couse you'll find this string inside *.h and *.lib
This problem will occur on sdl_ttf pnglib and miwin
and after that i'll stuck
but this rock is to heavy for me....
-
Thanks for the suggestion of changing the configure file.. works well.
Ok. now I compiled SDL_ttf and had to get freetype2 to do it. I don't have a problem with pnglib and miwin
now I'm stuck on newwin
That's what i meant to i say
-
hmmm
i've tried to build with ufoai Codeblocks
and my own "build"
got sdl bins from there
http://cefiro.homelinux.org/resources/list/SDL-binary-mingw32-2.0.html
SDL_ttf-2.0.9-2-i386-mingw32.tar.bz2
and freetype-2.3.5-1-lib.zip (ahhh i see no mingw)
but i recived a SDL_ttf error message
It seams you build it from source
right?
yes it was newwin and not minwin
newwin seems to be part of curses
try to rebuild using
freetype-mingw-2.3.5-2-bin
from http://sourceforge.net/projects/kde-windows/
-
Sorry put that wrong.
Got the ttf error but did the same as the mixer..
checking SDL_ttf.h usability... yes
checking SDL_ttf.h presence... yes
checking for SDL_ttf.h... yes
checking for library containing TTF_Init... no
checking png.h usability... yes
checking png.h presence... yes
Just using your idea again
-
ahhh, ok then
do the same on newwin error
after that you`ll stuck again
with anaother error