IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

[Yes::Engine] problème de compilation avec mingw et <cmath>


Sujet :

Moteurs 3D

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Points : 32
    Points
    32
    Par défaut [Yes::Engine] problème de compilation avec mingw et <cmath>
    Bonjour,
    J'essaie de compiler le moteur 3d du tutoriel suivant:
    http://loulou.developpez.com/tutoriels/moteur3d/
    celui de la partie 8 plus particulièrement (http://loulou.developpez.com/tutorie...eur3d/partie8/).

    Pour cela j'utilise CMake avec le CMakeLists.txt (cf en fin de post).

    Mon problème est que j'ai plein d'erreurs dans <cmath> et je ne comprend pas pourquoi.

    [ 9%] Building CXX object CMakeFiles/YesEngine.dir/YesEngine/Core/Renderer.cpp.obj
    In file included from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.inl:25:0,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.h:132,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:38,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:37: error: '__is_integer' was not declared in this scope
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:37: note: suggested alternative:
    In file included from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\stl_algobase.h:61:0,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:39,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ios:40,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ostream:38,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\iostream:39,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Utilities/Color.h:32,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:31,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\cpp_type_traits.h:136:12: note: 'std::__is_integer'
    struct __is_integer
    ^
    In file included from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.inl:25:0,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.h:132,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:38,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:53: error: wrong number of template arguments (1, should be 2)
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    In file included from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\stl_algobase.h:62:0,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:39,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ios:40,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ostream:38,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\iostream:39,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Utilities/Color.h:32,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:31,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ext\type_traits.h:43:12: error: provided for 'template<bool <anonymous>, class> struct __gnu_cxx::__enable_if'
    struct __enable_if
    ^
    In file included from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.inl:25:0,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.h:132,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:38,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:54: error: expected identifier before '::' token
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:63: error: invalid type in declaration before ',' token
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:63: error: declaration of '__value' not in a namespace surrounding '::'
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:63: error: '__value' should have been declared inside '::'
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:63: error: '__value' declared as an 'inline' variable
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:97:63: error: template declaration of 'int __value'
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:102:11: error: '::acos' has not been declared
    using ::acos;
    ^
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:116:37: error: '__is_integer' was not declared in this scope
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:116:37: note: suggested alternative:
    In file included from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\stl_algobase.h:61:0,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:39,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ios:40,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ostream:38,
    from c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\iostream:39,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Utilities/Color.h:32,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:31,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\cpp_type_traits.h:136:12: note: 'std::__is_integer'
    struct __is_integer
    ^
    In file included from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.inl:25:0,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Maths/Vector3.h:132,
    from C:/workdir/awesome/poc1/lib/YesEngine/YesEngine/Core/Renderer.h:38,
    from C:\workdir\awesome\poc1\lib\YesEngine\YesEngine\Core\Renderer.cpp:29:
    c:\qt\qt5.1.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cmath:116:53: error: wrong number of template arguments (1, should be 2)
    typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
    ^
    Je ne comprend pas avec quoi <cmath> rentre en conflit. Est ce que quelqu'un a le même problème?
    J'ai essayer de compiler avec VS2008 et ca fonctionne parfaitement.

    Environement:
    Windows 7 64
    Mingw avec qt (http://download.qt-project.org/offic...exe.mirrorlist)
    CMake 2.8.0.1

    CMakeLists.txt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    cmake_minimum_required(VERSION 2.8.8)
     
    # Defines
    set(LibName YesEngine)
     
    project (${LibName} CXX)
     
    find_package(OpenGL REQUIRED)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/YesEngine)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg/include)
     
    # Sources
    set (cg_headers
    	${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg/include/*.h
    )
     
    set (cg_libs
    	${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg/lib/cg.lib
    	#${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg/lib/cgD3D9.lib
    	${CMAKE_CURRENT_SOURCE_DIR}/ExtLibs/Cg/lib/cgGL.lib
    )
     
    set (lib_headers
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Config/Export.h
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Buffer.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Buffer.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/BufferBase.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Declaration.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/DeclarationElement.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Enums.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Renderer.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Renderer.inl
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/DebugNew.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/DebugNewOff.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/Exceptions.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/Logger.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerDebug.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerFile.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerMsgBox.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/MemoryManager.h
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Matrix4.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Matrix4.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Plane.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Plane.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Quaternion.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Quaternion.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Rectangle.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector2.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector2.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector3.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector3.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector4.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Vector4.inl
     
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/Extensions/glext.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/Extensions/wglext.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLBuffer.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLBuffer.inl
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLDeclaration.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLEnum.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLException.h
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLRenderer.h
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Util.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Color.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/File.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Plugin.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Plugin.inl
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Singleton.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/SmartPtr.h
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/SmartPtr.inl
     
    )
    set (lib_sources
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/BufferBase.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Core/Renderer.cpp
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/Exceptions.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/Logger.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerDebug.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerFile.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/LoggerMsgbox.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Debug/MemoryManager.cpp
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Maths/Rectangle.cpp
     
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/Export.cpp
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLDeclaration.cpp
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLEnum.cpp
    	#${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Renderers/OpenGLRenderer/OGLRenderer.cpp
     
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/Color.cpp
    	${CMAKE_CURRENT_SOURCE_DIR}/YesEngine/Utilities/File.cpp
    )
     
    # Project
    include_directories(${CMAKE_CURRENT_SOURCE_DIR})
    add_library ( ${LibName} STATIC ${lib_headers} ${lib_sources} ${cg_headers})
    target_link_libraries(${LibName} ${cg_libs})
    target_link_libraries(${LibName} ${OPENGL_LIBRARIES})
    #target_link_libraries(${LibName} m)  # if you use maths.h

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Dans votre CMakeLists.txt, vous n'êtes pas obligé de spécifier les fichiers à compiler fichier par fichier, vous pouvez lui dire : scan le répertoire.

    file(
    GLOB_RECURSE
    sources
    src/*.cpp
    src/*.hpp
    )
    Ce qui est plus court

    Il se peut que votre problème soit au final, la nom compilation du fichier Vector3.inl car vous le définissez comme entête et non fichier à compiler dans votre CMakeLists.txt.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Problème de compilation avec MinGW
    Par devalender dans le forum C
    Réponses: 4
    Dernier message: 04/04/2013, 13h40
  2. [Débuter] Problème de compilation avec MinGW
    Par matt36295 dans le forum Qt Creator
    Réponses: 1
    Dernier message: 21/01/2013, 02h38
  3. Problème de compilation avec MinGW
    Par AjJi dans le forum wxWidgets
    Réponses: 4
    Dernier message: 21/02/2008, 16h50
  4. [YES::ENGINE]:problème de compilation visual c++ 2005
    Par starkyetHutch dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 01/02/2008, 17h06
  5. Réponses: 1
    Dernier message: 29/10/2003, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo