← retour à la page principale du projet
Rapport du mardi 5 juillet 2005

Matin:
Discussion avec Séb' hier soir: le portage semble compromis, car il semblerait que SoQt ne soit compilable qu'avec Visual Studio (& produirait donc des fichiers binaires (dll) Visual Studio; i.e. nmake), alors que Qt en version Open Source n'est compilable qu'avec MinGW; or il semblerait que les DLL soient incompatibles entre elles si elles sont produites par un compilateur différent. Je vais vérifier ça aujourd'hui.
Je tente de compiler les sources de Coin-2 récupérées par CVS: quelques warnings (principalement l'utilisation de fonctions deprecated) & une erreur (un fichier au format MAC, que je m'empresse de convertir: font13.ic, font 17.ic, font25.ic, font33.ic). Évidemment, 5 minutes de compilation à chaque fois... :-\
Bon, ça compile, ça compile... sauf une erreur (& 60 warnings):
Error result 9009 returned from 'C:\WINDOWS\system32\cmd.exe'.
Que voulez-vous que je fasse de ça?
Bon, corrigé, problème de variables d'environnement (ne plus oublier de mettre des guillemets).
Ça nous donne:
Error result 255 returned from 'C:\WINDOWS\system32\cmd.exe'.
Beaucoup mieux...
Satané Visual Studio qui demande de rebooter entre chaque modification des variables d'environnement. Même avec les guillemets, l'espace de Program Files pose pb. OK, je déplace à la racine...
Après maintes reboot, ça compile (avec une floppée de warnings). Enfin, j'ai mon coin2d.dll!
Essayons maintenant de compiler SoQt...
OK, plus de 100 erreurs sur le fichier soqtkeyboard.cpp & un warning sur le fichier soqtspaceball.cpp:
\src\inventor\qt\devices\soqtspaceball.cpp(123) : warning C4805: '==' : unsafe mix of type 'int' and type 'bool' in operation
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2589: '(' : illegal token on right side of '::'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2143: syntax error : missing '}' before '::'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2143: syntax error : missing '}' before '::'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2143: syntax error : missing ';' before '::'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2059: syntax error : '::'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2143: syntax error : missing ';' before '}'
\src\inventor\qt\devices\soqtkeyboard.cpp(92) : error C2059: syntax error : '}'
\src\inventor\qt\devices\soqtkeyboard.cpp(96) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(96) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(96) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(97) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(97) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(97) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(98) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(98) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(98) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(99) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(99) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(99) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(100) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(100) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(100) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(101) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(101) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(101) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(102) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(102) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(102) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(103) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(103) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(103) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(104) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(104) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(104) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(105) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(105) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(105) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(106) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(106) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(106) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(107) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(107) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(107) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(109) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(109) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(109) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(110) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(110) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(110) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(114) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(114) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(114) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(116) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(116) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(116) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(117) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(117) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(117) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(118) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(118) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(118) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(119) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(119) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(119) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(121) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(121) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(121) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(122) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(122) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(122) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(123) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(123) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(123) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(124) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(124) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(124) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(125) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(125) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(125) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(126) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(126) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(126) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(127) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(127) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(127) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(128) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(128) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(128) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(129) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(129) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(129) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(130) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(130) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(130) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(131) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(131) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(131) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(132) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(132) : error C2447: '{' : missing function header (old-style formal list?)
\src\inventor\qt\devices\soqtkeyboard.cpp(132) : error C2059: syntax error : ','
\src\inventor\qt\devices\soqtkeyboard.cpp(133) : error C2143: syntax error : missing ';' before '{'
\src\inventor\qt\devices\soqtkeyboard.cpp(133) : fatal error C1003: error count exceeds 100; stopping compilation
Là, je ne vois réellement pas quoi faire, puisque c'est le fichier lui-même qui pose problème...
Bon, j'installe Cygwin. L'installation est super longue, les miroirs téléchargent à 2 Ko/s...
OK. Après avoir compris comment ça marche, ça donne:
Gilles@GAMMAPORTABLE /ProjetCosme/SoQt
$ ./configure
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking setup for wrapmsvc.exe... not working

You need to have the Microsoft Visual C++ compiler suite accessible in the
Cygwin environment.  Read the file <srcdir>/README.WIN32.

If you are absolutely sure you want to attempt to run the configure script
and the build process without Microsoft Visual C++, and you know what you
are doing, use the ''--disable-msvc'' option to configure.

configure: error: aborting
Bon: 2 options; VS ou MinGW? Je ne sais pas comment faire pour rendre accessible VS pour Cygwin (& évidemment, ce n'est pas noté dans le README.WIN32).
OK, tentons MinGW:
Gilles@GAMMAPORTABLE /ProjetCosme/SoQt
$ ./configure --disable-msvc
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... none
checking dependency style of gcc... none
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking how to run the C++ preprocessor... g++ -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... c:/MinGW/mingw32/bin/ld.exe
checking if the linker (c:/MinGW/mingw32/bin/ld.exe) is GNU ld... yes
checking for c:/MinGW/mingw32/bin/ld.exe option to reload object files... -r
checking for BSD-compatible nm... /cygdrive/c/MinGW/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... file_magic ^x86 archive import|
^x86 DLL
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... no
checking dlfcn.h presence... no
checking for dlfcn.h... no
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for gfortran... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether  accepts -g... no
checking the maximum length of command line arguments... 8192
checking command to parse /cygdrive/c/MinGW/bin/nm -B output from gcc object...
ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag  works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC...
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... c:/MinGW/mingw32/bin/ld.exe
checking if the linker (c:/MinGW/mingw32/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking for g++ option to produce PIC...
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
checking for hhc... no
checking windows.h usability... yes
checking windows.h presence... yes
checking for windows.h... yes
checking for unistd.h... (cached) yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking netinet/in.h usability... no
checking netinet/in.h presence... no
checking for netinet/in.h... no
checking for tlhelp32.h... yes
checking X11/extensions/SGIMisc.h usability... no
checking X11/extensions/SGIMisc.h presence... no
checking for X11/extensions/SGIMisc.h... no
checking X11/Xproto.h usability... no
checking X11/Xproto.h presence... no
checking for X11/Xproto.h... no
checking X11/extensions/XInput.h usability... no
checking X11/extensions/XInput.h presence... no
checking for X11/extensions/XInput.h... no
checking if the Win32 API is available... yes
checking for GetEnvironmentVariable() function... yes
checking for windows.h... (cached) yes
checking whether the Win32 LoadLibrary() method is available... yes
checking for GetClassName() function... yes
checking if fink is available... no
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... no
checking for gethostbyname in -lnsl... no
checking for gethostbyname in -lbsd... no
checking for connect... no
checking for connect in -lsocket... no
checking for remove... yes
checking for shmat... no
checking for shmat in -lipc... no
checking for IceConnectionNumber in -lICE... no
checking how to include gl.h... #include <GL/gl.h>
checking for coin-config... /cygdrive/c/Coin3D-2/bin/coin-config
checking if we can compile and link with the Coin library... false
configure: WARNING:
Compilation and/or linking with the Coin main library SDK failed, for
unknown reason. If you are familiar with configure-based configuration
and building, investigate the 'config.log' file for clues.

If you can not figure out what went wrong, please forward the 'config.log'
file to the email address <coin-support@coin3d.org> and ask for help by
describing the situation where this failed.

configure: error: couldn't compile and link against Coin
Il a bien cherché au bon endroit, donc je vais devoir regarder le log...

Après-midi:
Tentative de recompilation  de Coin via Cygwin. Même problème avec Visual C++ 6. Tentative avec MinGW:
Gilles@GAMMAPORTABLE /Coin-2
$ ./configure
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking setup for wrapmsvc.exe... not working

You need to have the Microsoft Visual C++ compiler suite accessible in the
Cygwin environment.  Read the file <srcdir>/README.WIN32.

If you are absolutely sure you want to attempt to run the configure script
and the build process without Microsoft Visual C++, and you know what you
are doing, use the ''--disable-msvc'' option to configure.

configure: error: aborting

Gilles@GAMMAPORTABLE /Coin-2
$ ./configure --disable-msvc
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking for distcheck mode... no
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking for style of include used by make... none
checking dependency style of gcc... none
checking dependency style of g++... none
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... c:/MinGW/mingw32/bin/ld.exe
checking if the linker (c:/MinGW/mingw32/bin/ld.exe) is GNU ld... yes
checking for c:/MinGW/mingw32/bin/ld.exe option to reload object files... -r
checking for BSD-compatible nm... /cygdrive/c/MinGW/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... file_magic ^x86 archive import|
^x86 DLL
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... no
checking dlfcn.h presence... no
checking for dlfcn.h... no
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for gfortran... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether  accepts -g... no
checking the maximum length of command line arguments... 8192
checking command to parse /cygdrive/c/MinGW/bin/nm -B output from gcc object...
ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag  works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC...
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... c:/MinGW/mingw32/bin/ld.exe
checking if the linker (c:/MinGW/mingw32/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking for g++ option to produce PIC...
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (c:/MinGW/mingw32/bin/ld.exe) supports shared li
braries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
checking if the C++ compiler environment is ok... true
checking if the compiler handles for() loops in inlined constructors... yes
checking if the compiler handles switch statements in virtual destructors... yes

checking if this is a version of GCC with a known nasty optimization bug... fals
e
checking for __builtin_expect()... found
checking if assert() uses __builtin_expect()... no
checking for function name variable for CPP compiler... __func__
checking for function name variable for C compiler... __func__
checking for Win32 threads... true
checking for unistd.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for sys/param.h... yes
checking for sys/time.h... yes
checking for sys/timeb.h... yes
checking for time.h... yes
checking for io.h... yes
checking for windows.h... yes
checking for libgen.h... no
checking for direct.h... yes
checking for ieeefp.h... no
checking for tlhelp32.h... yes
checking for _splitpath()... found
checking if the Win32 API is available... yes
checking for sys/unistd.h... yes
checking for IN_PATH define conflict... no
checking for netinet/in.h... false
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for sys/types.h... (cached) yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking standard bytesize typedefs... available
checking for fstat() function... available
checking for BSD 4.3 isinf() function... available
checking for BSD 4.3 isnan() function... available
checking for BSD 4.3 finite() function... available
checking for fpclass() function... available
checking for _fpclass() function... available
checking for hhc... no
checking for perl... false
checking for makensis... false
checking for dpkg-buildpackage... false
checking if user is simian... probably not
checking whether g++ accepts -fno-exceptions... yes
checking whether gcc accepts -W... yes
checking whether gcc accepts -Wall... yes
checking whether gcc accepts -Wno-unused... yes
checking whether gcc accepts -Wno-multichar... yes
checking whether g++ accepts -W... yes
checking whether g++ accepts -Wall... yes
checking whether g++ accepts -Wno-unused... yes
checking whether g++ accepts -Wno-multichar... yes
checking whether g++ accepts -Woverloaded-virtual... yes
checking for project release status... beta / inbetween releases
checking Visual Studio C++ version... 6
checking whether gcc accepts -fno-builtin... yes
checking whether g++ accepts -fno-builtin... yes
checking whether g++ accepts -fno-for-scoping... no
checking whether gcc accepts -finline-functions... yes
checking whether g++ accepts -finline-functions... yes
checking whether gcc accepts -Wreturn-type... yes
checking whether g++ accepts -Wreturn-type... yes
checking whether gcc accepts -Wchar-subscripts... yes
checking whether g++ accepts -Wchar-subscripts... yes
checking whether gcc accepts -Wparentheses... yes
checking whether g++ accepts -Wparentheses... yes
no
checking whether snprintf() is available... yes
checking whether vsnprintf() is available... yes
checking for va_copy() stdarg macro... yes
checking whether quoting in macros can be done with hash symbol... yes
checking for GetEnvironmentVariable() function... yes
checking for timeGetTime() function... yes
checking for MessageBox() function... yes
checking for QueryPerformanceCounter() function... yes
checking for _ftime() function... yes
checking for ftime() function... yes
checking for _getcwd() function... yes
checking for getcwd() function... yes
checking for gettimeofday() function... no
checking for strncasecmp() function... yes
checking for _logb() function... yes
checking mach-o/dyld.h usability... no
checking mach-o/dyld.h presence... no
checking for mach-o/dyld.h... no
checking whether we can use Mach-O dyld... no
checking for dlfcn.h... (cached) no
checking for the dl library... not available
checking for windows.h... (cached) yes
checking whether the Win32 LoadLibrary() method is available... yes
checking for math functions library... no explicit linkage necessary
checking whether single-precision math functions are available... true
checking for ilogb() function... yes
checking for X... no
checking if X11 linkage is ready... false
checking how to include gl.h... #include <GL/gl.h>
checking for OpenGL library dev-kit...   -lopengl32
checking how to include glext.h... #include <GL/glext.h>
checking whether WGL is on the system... true
checking how to include glu.h... #include <GL/glu.h>
checking if GLU is available as part of GL library... false
checking for shared library suffix... .dll
configure: error: config.h.in is out of sync - maintainer must update
Bon... Heu...
Donc, si je récapitule:
binaires livrés (.exe) compiler avec Visual Studio (*.sln; *.dsw; *.vcproj; *.dsp) Compiler avec Cygwin + Visual C++6 Compiler avec Cygwin + compilateur par défaut (MinGW)
Coin OK OK X X
SoQt OK X X X
Attention: durant l'installation de Coin, il enregistre toujours les variables d'environnement comme étant C:\Coin3D-2, même si on a déplacé le dossier d'installation.
J'ai retesté avec les binaires précompilés mon exemple de base:
// TestSoQtVS.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


//int _tmain(int argc, _TCHAR* argv[])
//{
//    return 0;
//}

#include <Inventor/Qt/SoQt.h>
#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
#include <Inventor/nodes/SoBaseColor.h>
#include <Inventor/nodes/SoCone.h>
#include <Inventor/nodes/SoSeparator.h>

//int
//main(int argc, char ** argv)
//{
int _tmain(int argc, _TCHAR* argv[])
{
    // Initializes SoQt library (and implicitly also the Coin and Qt
    // libraries). Returns a top-level / shell Qt window to use.
    QWidget * mainwin = SoQt::init(argc, argv, argv[0]);

    // Make a dead simple scene graph by using the Coin library, only
    // containing a single yellow cone under the scenegraph root.
    SoSeparator * root = new SoSeparator;
    root->ref();

    SoBaseColor * col = new SoBaseColor;
    col->rgb = SbColor(1, 1, 0);
    root->addChild(col);

    root->addChild(new SoCone);

    // Use one of the convenient SoQt viewer classes.
    SoQtExaminerViewer * eviewer = new SoQtExaminerViewer(mainwin);
    eviewer->setSceneGraph(root);
    eviewer->show();

    // Pop up the main window.
    SoQt::show(mainwin);
    // Loop until exit.
    SoQt::mainLoop();

    // Clean up resources.
    delete eviewer;
    root->unref();

    return 0;
}
Après 20 minutes de configuration de l'environnement (j'ai testé aujourd'hui d'autres combinaisons), toujours la même erreur (+ 9 warnings):
error C2665: 'SoQt::init' : none of the 3 overloads could convert all the argument types
c:\documents and settings\gilles\my documents\visual studio 2005\projects\soqtvs\testsoqtvs\testsoqtvs\testsoqtvs.cpp    line 25
Donc, c'est SoQt qui pose problème, tout-à-fait indépendemment de Qt.
Bon, c'est de ma faute, je viens de corriger l'erreur.
Correction (du code du fichier):
int _tmain(int argc, _TCHAR* argv[])
{
    // Initializes SoQt library (and implicitly also the Coin and Qt
    // libraries). Returns a top-level / shell Qt window to use.
    char ** argvBis;
    QWidget * mainwin = SoQt::init(argc, argvBis, argvBis[0]);
Ça compile, avec 10 warnings. Mais au lancement, il me dit qu'il ne trouve pas soqt1.dll.
Bon, il fallait enlever les guillemets de la variable d'environnement path.
Après un reboot de VS, il me dit ça:
'TestSoQtVS.exe': Loaded 'C:\Documents and Settings\Gilles\My Documents\Visual Studio 2005\Projects\SoQtVS\TestSoQtVS\TestSoQtVS\Release\TestSoQtVS.exe', Symbols loaded.
'TestSoQtVS.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'TestSoQtVS.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'TestSoQtVS.exe': Loaded 'C:\ProjetCosme\SoQt\bin\soqt1.dll', Binary was not built with debug information.
Debugger:: An unhandled non-continuable STATUS_DLL_NOT_FOUND exception was thrown during process load
The program '[3248] TestSoQtVS.exe: Native' has exited with code -1073741515 (0xc0000135).
C'est maintenant qt-mt301.dll qu'il ne trouve pas (que ce soit en debug ou release)... Pas étonnant, je n'ai pas cette dll sur le disque dur... Ça doit être une dll de Qt3. Aucune DLL n'a un nom ressemblant...
Problème similaire discuté sur ces posts: https://www.coin3d.org/pipermail/coin-discuss/2003-March/002007.html; solution proposée: compiler les sources! :-\
http://www.coin3d.org/pipermail/coin-discuss/2003-March/002009.html; solution proposée: renommer une DLL ayant un nom similaire.
Autres questions ici: http://www.coin3d.org/mailman/search?query=qt-mt301.dll&max=20&result=normal&sort=score&idxname=coin-discuss
Discussion audio avec Séb' & Nico. Le portage semble d'un commun accord compromis. Il est prévu de faire quelques derniers efforts jusqu'à demain, & d'en parler à Yannick & Audrey.
Une version d'évaluation de Qt Commercial pourrait nous aider, mais il faut quelques informations que seul Yannick peut nous fournir. On lui soumettra un formulaire demain, lors de notre réunion.
L'imprimante marche pas, j'essaierai d'imprimer chez moi ce soir. En fait, j'ai réussi à imprimer sous Windows.
Message envoyé sur la mailing list de Coin: https://www.coin3d.org/pipermail/coin-discuss/2005-July/005941.html.

À effectuer prochainement:
Regarder la mailing list de Coin
Tester sous Visual Studio 2003
Réunion avec Audrey & Yannick
Recommencer à regarder le code source sous Linux, & ensuite le porter sous Qt4 pour Linux
Valid XHTML 1.0 Transitional