Bah je suis bloqué de toute façon, mingw ne trouve pas les fichiers includes de SFML, comment on fait pour compiler avec Cwc ?
Pour créer une autre branche faut faire git checkout -b puis tu peux push dessus, j'ai fais un git checkout mais il ne semble pas afficher la nouvelles branches comment on en crée une depuis la page web ?
-Lancer cwc.exe, lors de la première utilisation les fichiers .cwMake seront associés. Le menu "Config/Set cwc" permet la même chose.
-Téléchager/Cloner ce repo (ODFAEG). Plusieurs compilation .cwMake s'y trouve (dans le dossier 'cwc'). Double cliquer sur celle voulu, les Toolchains et Libs seront téléchargé automatiquement, puis compilé.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
Oui ya pas d'installateur pour l'instant, c'est encore en développent. Par contre pour la branche "Windows" je crois que c'est toi qui doit la créer de ton coté (j'ai pas les droits)
En effet, c'est un bug, relance le .cwMake
- Edité par Maeiky 27 janvier 2020 à 22:54:19
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
Ok mais j'ai une erreur Executable not found j'ai posté ce qu'il met dans le message ci-dessus, il télécharger SFML automatiquement, comme dépendant il y a aussi gmp, openssl et tout ça il va me les télécharger et les compiler automatiquement ?
Ah bah en release j'y arrive j'ai la même erreur que toi.
../ODFAEG/src/odfaeg/Graphics/glResource.cpp: In constructor 'odfaeg::window::GLResource::GLResource()':
../ODFAEG/src/odfaeg/Graphics/glResource.cpp:5:13: error: 'ContextImpl' has not been declared
ContextImpl::initResource();
^~~~~~~~~~~
../ODFAEG/src/odfaeg/Graphics/glResource.cpp: In destructor 'odfaeg::window::GLResource::~GLResource()':
../ODFAEG/src/odfaeg/Graphics/glResource.cpp:8:13: error: 'ContextImpl' has not been declared
ContextImpl::cleanupResource();
^~~~~~~~~~~
--Stop Build--
Je ne comprend pas pourtant ça compile sans problème sous linux ha oui et aussi j'avais pas tout ces warnings.
PS : Hé bien ce bout de code ne devrait pas compilé vu que j'utilise SFML et non plus le module fenêtre de ODFAEG. Il n'y a pas de classe ContextImpl pour windows normal que ça ne compile pas.
Oui pour le Debug ça compile maintenant mais je ne comprends pas ce code là ou il y a une erreur ça ne devrait pas le compiler, je l'avais compilé y'a pas si longtemps avec mingw sous windows et ça avait été jusqu'au bout, mais on dirait qu'avec la nouvelle version de mingw il ne trouve pas les include sous windows 10.
PS : Bon je vais essayer de corriger ça, je pense le mieux c'est de faire la gestion des fenêtres windows pour ODFAEG.
Je pense que ta changé beaucoup de chose depuis....
Et puis beaucoup de chose change entre le versions,par exemple j'avais plein d'erreur dans tes noms de variables car les même noms était utilisé par d'autre includes du compilo (vive le c++).
Aussi faut dire que je suis repartie du début, il se peut que ça compile des fichiers que tu ne compilais pas avant, voir le make file:
Salut, j'ai commencé à amélioré le module fenêtre de ODFAEG pour qu'il supporte windows, ça a fait partir certaines erreurs mais je me retrouve bloqué ici :
In file included from C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/include/odfaeg/Window/wglContext.hpp:6,
from ../ODFAEG/src/odfaeg/Window/../../../include/odfaeg/Window/contextImpl.hpp:10,
from ../ODFAEG/src/odfaeg/Window/context.cpp:2:
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/src/odfaeg/Window/wglExtensions.hpp:64:16: error: multiple types in one declaration
#define GLvoid void
^~~~
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/src/odfaeg/Window/wglExtensions.hpp:64:16: note: in definition of macro 'GLvoid'
#define GLvoid void
^~~~
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/src/odfaeg/Window/wglExtensions.hpp:64:16: error: declaration does not declare anything [-fpermissive]
#define GLvoid void
^~~~
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/src/odfaeg/Window/wglExtensions.hpp:64:16: note: in definition of macro 'GLvoid'
#define GLvoid void
^~~~
In file included from ../ODFAEG/src/odfaeg/Window/../../../include/odfaeg/Window/contextImpl.hpp:10,
from ../ODFAEG/src/odfaeg/Window/context.cpp:2:
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/include/odfaeg/Window/wglContext.hpp: In member function 'virtual const odfaeg::window::ContextSettings& odfaeg::window::WglContext::getSettings() const':
C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/ODFAEG/include/odfaeg/Window/wglContext.hpp:86:13: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
--Stop Build--
--- End with 20 errors --- 2.96 sec
Dans ce fichier ci :
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#ifndef SF_POINTER_C_GENERATED_HEADER_WINDOWSGL_HPP
#define SF_POINTER_C_GENERATED_HEADER_WINDOWSGL_HPP
#ifdef __wglext_h_
#error Attempt to include auto-generated WGL header after wglext.h
#endif
#define __wglext_h_
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN 1
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#ifdef CODEGEN_FUNCPTR
#undef CODEGEN_FUNCPTR
#endif // CODEGEN_FUNCPTR
#define CODEGEN_FUNCPTR WINAPI
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef int GLsizei;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
#define GLvoid void
#endif // GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#endif // GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
struct _GPU_DEVICE {
DWORD cb;
CHAR DeviceName[32];
CHAR DeviceString[128];
DWORD Flags;
RECT rcVirtualScreen;
};
DECLARE_HANDLE(HPBUFFERARB);
DECLARE_HANDLE(HPBUFFEREXT);
DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
DECLARE_HANDLE(HPVIDEODEV);
DECLARE_HANDLE(HGPUNV);
DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
typedef struct _GPU_DEVICE *PGPU_DEVICE;
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
extern int sfwgl_ext_EXT_swap_control;
extern int sfwgl_ext_EXT_framebuffer_sRGB;
extern int sfwgl_ext_ARB_framebuffer_sRGB;
extern int sfwgl_ext_ARB_multisample;
extern int sfwgl_ext_ARB_pixel_format;
extern int sfwgl_ext_ARB_pbuffer;
extern int sfwgl_ext_ARB_create_context;
extern int sfwgl_ext_ARB_create_context_profile;
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
#define WGL_SAMPLES_ARB 0x2042
#define WGL_SAMPLE_BUFFERS_ARB 0x2041
#define WGL_ACCELERATION_ARB 0x2003
#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
#define WGL_ACCUM_BITS_ARB 0x201D
#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
#define WGL_ACCUM_RED_BITS_ARB 0x201E
#define WGL_ALPHA_BITS_ARB 0x201B
#define WGL_ALPHA_SHIFT_ARB 0x201C
#define WGL_AUX_BUFFERS_ARB 0x2024
#define WGL_BLUE_BITS_ARB 0x2019
#define WGL_BLUE_SHIFT_ARB 0x201A
#define WGL_COLOR_BITS_ARB 0x2014
#define WGL_DEPTH_BITS_ARB 0x2022
#define WGL_DOUBLE_BUFFER_ARB 0x2011
#define WGL_DRAW_TO_BITMAP_ARB 0x2002
#define WGL_DRAW_TO_WINDOW_ARB 0x2001
#define WGL_FULL_ACCELERATION_ARB 0x2027
#define WGL_GENERIC_ACCELERATION_ARB 0x2026
#define WGL_GREEN_BITS_ARB 0x2017
#define WGL_GREEN_SHIFT_ARB 0x2018
#define WGL_NEED_PALETTE_ARB 0x2004
#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
#define WGL_NO_ACCELERATION_ARB 0x2025
#define WGL_NUMBER_OVERLAYS_ARB 0x2008
#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
#define WGL_PIXEL_TYPE_ARB 0x2013
#define WGL_RED_BITS_ARB 0x2015
#define WGL_RED_SHIFT_ARB 0x2017
#define WGL_SHARE_ACCUM_ARB 0x200E
#define WGL_SHARE_DEPTH_ARB 0x200C
#define WGL_SHARE_STENCIL_ARB 0x200D
#define WGL_STENCIL_BITS_ARB 0x2023
#define WGL_STEREO_ARB 0x2012
#define WGL_SUPPORT_GDI_ARB 0x200F
#define WGL_SUPPORT_OPENGL_ARB 0x2010
#define WGL_SWAP_COPY_ARB 0x2029
#define WGL_SWAP_EXCHANGE_ARB 0x2028
#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
#define WGL_SWAP_METHOD_ARB 0x2007
#define WGL_SWAP_UNDEFINED_ARB 0x202A
#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
#define WGL_TRANSPARENT_ARB 0x200A
#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
#define WGL_TYPE_COLORINDEX_ARB 0x202C
#define WGL_TYPE_RGBA_ARB 0x202B
#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
#define WGL_PBUFFER_HEIGHT_ARB 0x2035
#define WGL_PBUFFER_LARGEST_ARB 0x2033
#define WGL_PBUFFER_LOST_ARB 0x2036
#define WGL_PBUFFER_WIDTH_ARB 0x2034
#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
#define WGL_CONTEXT_FLAGS_ARB 0x2094
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
#define WGL_ERROR_INVALID_VERSION_ARB 0x2095
#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
#define WGL_ERROR_INVALID_PROFILE_ARB 0x2096
#ifndef WGL_EXT_swap_control
#define WGL_EXT_swap_control 1
extern int (CODEGEN_FUNCPTR *sf_ptrc_wglGetSwapIntervalEXT)(void);
#define wglGetSwapIntervalEXT sf_ptrc_wglGetSwapIntervalEXT
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglSwapIntervalEXT)(int);
#define wglSwapIntervalEXT sf_ptrc_wglSwapIntervalEXT
#endif // WGL_EXT_swap_control
#ifndef WGL_ARB_pixel_format
#define WGL_ARB_pixel_format 1
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglChoosePixelFormatARB)(HDC, const int*, const FLOAT*, UINT, int*, UINT*);
#define wglChoosePixelFormatARB sf_ptrc_wglChoosePixelFormatARB
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglGetPixelFormatAttribfvARB)(HDC, int, int, UINT, const int*, FLOAT*);
#define wglGetPixelFormatAttribfvARB sf_ptrc_wglGetPixelFormatAttribfvARB
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int*, int*);
#define wglGetPixelFormatAttribivARB sf_ptrc_wglGetPixelFormatAttribivARB
#endif // WGL_ARB_pixel_format
#ifndef WGL_ARB_pbuffer
#define WGL_ARB_pbuffer 1
extern HPBUFFERARB (CODEGEN_FUNCPTR *sf_ptrc_wglCreatePbufferARB)(HDC, int, int, int, const int*);
#define wglCreatePbufferARB sf_ptrc_wglCreatePbufferARB
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglDestroyPbufferARB)(HPBUFFERARB);
#define wglDestroyPbufferARB sf_ptrc_wglDestroyPbufferARB
extern HDC (CODEGEN_FUNCPTR *sf_ptrc_wglGetPbufferDCARB)(HPBUFFERARB);
#define wglGetPbufferDCARB sf_ptrc_wglGetPbufferDCARB
extern BOOL (CODEGEN_FUNCPTR *sf_ptrc_wglQueryPbufferARB)(HPBUFFERARB, int, int*);
#define wglQueryPbufferARB sf_ptrc_wglQueryPbufferARB
extern int (CODEGEN_FUNCPTR *sf_ptrc_wglReleasePbufferDCARB)(HPBUFFERARB, HDC);
#define wglReleasePbufferDCARB sf_ptrc_wglReleasePbufferDCARB
#endif // WGL_ARB_pbuffer
#ifndef WGL_ARB_create_context
#define WGL_ARB_create_context 1
extern HGLRC (CODEGEN_FUNCPTR *sf_ptrc_wglCreateContextAttribsARB)(HDC, HGLRC, const int*);
#define wglCreateContextAttribsARB sf_ptrc_wglCreateContextAttribsARB
#endif // WGL_ARB_create_context
enum sfwgl_LoadStatus
{
sfwgl_LOAD_FAILED = 0,
sfwgl_LOAD_SUCCEEDED = 1
};
int sfwgl_LoadFunctions(HDC hdc);
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // SF_POINTER_C_GENERATED_HEADER_WINDOWSGL_HPP
Pourtant se fichier compile avec SFML, sous mingw.
Ok j'ai corrigé à peu près toutes les erreurs sauf qu'il me compile aussi les fichiers de linux même si je ne les inclus pas, chose qu'il ne fait pas avec cmake!
Ca va être embêtant d'à chaque fois refaire le build, chaque fois que je change de plateforme.
: (g++<C++>) -I ../ -I ../ExtLib/SFML-2.5.1/include/ -I ../ExtLib/SDL2/include/ -I ../ODFAEG/extlibs/headers/libsndfile/windows/ -I ../ODFAEG/extlibs/headers/OPENSSL/ -I ../ODFAEG/include/ -I ../ODFAEG/extlibs/headers/ -I ../ODFAEG/extlibs/headers/libfreetype/windows/ -std=c++14 -DSFML -c ../ODFAEG/src/odfaeg/Window/display.cpp -o obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Window/display.o -O2 -s -ffunction-sections -fdata-sections -Wl,--gc-sections -I"C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/include/" -I"C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/" -I"C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/c++/" -I"C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/c++/backward/" -I"C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/pthreads/" -I"C:/Users/Laurent/Downloads/ODFAEG-master (1)/ODFAEG-master/cwc/" -m32 -MD -DDsToolchain="VLianceTool_LibRT" -DDsPlatform="Windows" -DD_Platform_Windows -DDsPlatform_File="Default" -DD_Release -DDsOpt="O2"
In file included from ../ODFAEG/src/odfaeg/Window/display.cpp:1:
../ODFAEG/src/odfaeg/Window/../../../include/odfaeg/Window/display.hpp:3:10: fatal error: X11/Xlib.h: No such file or directory
#include <X11/Xlib.h>
^~~~~~~~~~~~
compilation terminated.
--Stop Build--
--- End with 9 errors --- 2.25 sec
Il n'y a pas de fichier xLib sous windows!
Il n'y a pas un moyen de spécifier les fichiers que l'on veut compiler suivant la plateforme sur laquelle on est ?
PS : j'ai essayé de le pull sur un nouveau repository car plus moyen d'accéder à l'ancien, il y a le compte Ornito avec lequel je n'ai pas le droit de push et avec mon autre compte celui avec lequel j'ai tout les droits il m'envoie un code de vérification à une adresse email qui n'existe plus.
Mais j'ai ce message d'erreur avec tortoisegit :
git.exe push --progress "origin" windows
remote: Permission to LaurentDuroisin7601/ODFAEG.git denied to Ornito.
fatal: unable to access 'https://github.com/LaurentDuroisin7601/ODFAEG/': The requested URL returned error: 403
git did not exit cleanly (exit code 128) (1250 ms @ 28-01-20 18:27:26)
PS 2, j'ai cette erreur lorsque j'essaye d'ouvrir le fichier build :
Exception on WM_CREATE
scintillaEditView::init Scintilla error cannot load the dynamic library.
Quand j'essaie de l'ouvrir avec notpad ça me met cette erreur pourtant il n'y a aucune autre instance d'ouverte.
Bon j'ai mit les fichiers windows dans un dossier, les fichiers linux dans un autre dossier.
Par contre j'ai des erreurs de compilation. (pourtant je n'ai fais que de reprendre la même classe que SFML)
}
^
../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp: In function 'void {anonymous}::setProcessDpiAware()':
../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:47:43: error: cannot convert 'const wchar_t*' to 'LPCSTR' {aka 'const char*'}
HINSTANCE shCoreDll = LoadLibrary(L"Shcore.dll");
^~~~~~~~~~~~~
In file included from C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/windows.h:70,
from ../ODFAEG/extlibs/headers/GL/gl.h:91,
from ../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:11:
C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/winbase.h:1517:50: note: initializing argument 1 of 'HINSTANCE__* LoadLibraryA(LPCSTR)'
WINBASEAPI HMODULE WINAPI LoadLibraryA (LPCSTR lpLibFileName);
~~~~~~~^~~~~~~~~~~~~
../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:82:43: error: cannot convert 'const wchar_t*' to 'LPCSTR' {aka 'const char*'}
HINSTANCE user32Dll = LoadLibrary(L"user32.dll");
^~~~~~~~~~~~~
In file included from C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/windows.h:70,
from ../ODFAEG/extlibs/headers/GL/gl.h:91,
from ../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:11:
C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/winbase.h:1517:50: note: initializing argument 1 of 'HINSTANCE__* LoadLibraryA(LPCSTR)'
WINBASEAPI HMODULE WINAPI LoadLibraryA (LPCSTR lpLibFileName);
~~~~~~~^~~~~~~~~~~~~
../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp: In member function 'void odfaeg::window::Win32Window::switchToFullscreen(const sf::VideoMode&)':
../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:537:40: error: cannot convert 'DEVMODE*' {aka '_devicemodeA*'} to 'LPDEVMODEW' {aka '_devicemodeW*'}
if (ChangeDisplaySettingsW(&devMode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
^~~~~~~~
In file included from C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/windows.h:72,
from ../ODFAEG/extlibs/headers/GL/gl.h:91,
from ../ODFAEG/src/odfaeg/Window/Windows/win32Window.cpp:11:
C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/i686-w64-mingw32/include/winuser.h:5372:60: note: initializing argument 1 of 'LONG ChangeDisplaySettingsW(LPDEVMODEW, DWORD)'
WINUSERAPI LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW lpDevMode,DWORD dwFlags);
~~~~~~~~~~~^~~~~~~~~
--Stop Build--
--- End with 7 errors --- 2.67 sec
Voici le fichier :
#ifdef _WIN32_WINDOWS
#undef _WIN32_WINDOWS
#endif
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINDOWS 0x0501
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#include <SFML/Window/WindowStyle.hpp>
#include <GL/gl.h>
#include <SFML/System/Err.hpp>
#include <SFML/System/Utf.hpp>
// dbt.h is lowercase here, as a cross-compile on linux with mingw-w64
// expects lowercase, and a native compile on windows, whether via msvc
// or mingw-w64 addresses files in a case insensitive manner.
#include <dbt.h>
#include <vector>
#include <cstring>
// MinGW lacks the definition of some Win32 constants
#ifndef XBUTTON1
#define XBUTTON1 0x0001
#endif
#ifndef XBUTTON2
#define XBUTTON2 0x0002
#endif
#ifndef WM_MOUSEHWHEEL
#define WM_MOUSEHWHEEL 0x020E
#endif
#ifndef MAPVK_VK_TO_VSC
#define MAPVK_VK_TO_VSC (0)
#endif
#include "../../../../include/odfaeg/Window/Windows/win32Window.hpp"
namespace
{
unsigned int windowCount = 0; // Windows owned by SFML
unsigned int handleCount = 0; // All window handles
const wchar_t* className = L"ODFAEG_Window";
odfaeg::window::Win32Window* fullscreenWindow = NULL;
const GUID GUID_DEVINTERFACE_HID = {0x4d1e55b2, 0xf16f, 0x11cf, {0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30}};
void setProcessDpiAware()
{
// Try SetProcessDpiAwareness first
HINSTANCE shCoreDll = LoadLibrary(L"Shcore.dll");
if (shCoreDll)
{
enum ProcessDpiAwareness
{
ProcessDpiUnaware = 0,
ProcessSystemDpiAware = 1,
ProcessPerMonitorDpiAware = 2
};
typedef HRESULT (WINAPI* SetProcessDpiAwarenessFuncType)(ProcessDpiAwareness);
SetProcessDpiAwarenessFuncType SetProcessDpiAwarenessFunc = reinterpret_cast<SetProcessDpiAwarenessFuncType>(GetProcAddress(shCoreDll, "SetProcessDpiAwareness"));
if (SetProcessDpiAwarenessFunc)
{
// We only check for E_INVALIDARG because we would get
// E_ACCESSDENIED if the DPI was already set previously
// and S_OK means the call was successful
if (SetProcessDpiAwarenessFunc(ProcessSystemDpiAware) == E_INVALIDARG)
{
sf::err() << "Failed to set process DPI awareness" << std::endl;
}
else
{
FreeLibrary(shCoreDll);
return;
}
}
FreeLibrary(shCoreDll);
}
// Fall back to SetProcessDPIAware if SetProcessDpiAwareness
// is not available on this system
HINSTANCE user32Dll = LoadLibrary(L"user32.dll");
if (user32Dll)
{
typedef BOOL (WINAPI* SetProcessDPIAwareFuncType)(void);
SetProcessDPIAwareFuncType SetProcessDPIAwareFunc = reinterpret_cast<SetProcessDPIAwareFuncType>(GetProcAddress(user32Dll, "SetProcessDPIAware"));
if (SetProcessDPIAwareFunc)
{
if (!SetProcessDPIAwareFunc())
sf::err() << "Failed to set process DPI awareness" << std::endl;
}
FreeLibrary(user32Dll);
}
}
}
namespace odfaeg {
namespace window {
using namespace sf;
Win32Window::Win32Window() :
m_handle (NULL),
m_callback (0),
m_cursorVisible (true), // might need to call GetCursorInfo
m_lastCursor (LoadCursor(NULL, IDC_ARROW)),
m_icon (NULL),
m_keyRepeatEnabled(true),
m_lastSize (0, 0),
m_resizing (false),
m_surrogate (0),
m_mouseInside (false),
m_fullscreen (false),
m_cursorGrabbed (false),
m_opened(false),
m_destroyed(true) {
}
////////////////////////////////////////////////////////////
Win32Window::Win32Window(WindowHandle handle, const ContextSettings& settings) :
m_handle (handle),
m_callback (0),
m_cursorVisible (true), // might need to call GetCursorInfo
m_lastCursor (LoadCursor(NULL, IDC_ARROW)),
m_icon (NULL),
m_keyRepeatEnabled(true),
m_lastSize (0, 0),
m_resizing (false),
m_surrogate (0),
m_mouseInside (false),
m_fullscreen (false),
m_cursorGrabbed (false),
m_opened(false),
m_destroyed(true)
{
create(m_handle, settings);
}
////////////////////////////////////////////////////////////
Win32Window::Win32Window(VideoMode mode, const String& title, Uint32 style, const ContextSettings& settings) :
m_handle (NULL),
m_callback (0),
m_cursorVisible (true), // might need to call GetCursorInfo
m_lastCursor (LoadCursor(NULL, IDC_ARROW)),
m_icon (NULL),
m_keyRepeatEnabled(true),
m_lastSize (mode.width, mode.height),
m_resizing (false),
m_surrogate (0),
m_mouseInside (false),
m_fullscreen ((style & Style::Fullscreen) != 0),
m_cursorGrabbed (m_fullscreen),
m_opened(false),
m_destroyed(true)
{
create(mode, title, style, settings);
}
void Win32Window::create(sf::WindowHandle handle, const ContextSettings& settings) {
// Set that this process is DPI aware and can handle DPI scaling
setProcessDpiAware();
if (m_handle)
{
// If we're the first window handle, we only need to poll for joysticks when WM_DEVICECHANGE message is received
/*if (handleCount == 0)
JoystickImpl::setLazyUpdates(true);*/
++handleCount;
// We change the event procedure of the control (it is important to save the old one)
SetWindowLongPtrW(m_handle, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this));
m_callback = SetWindowLongPtrW(m_handle, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(&Win32Window::globalOnEvent));
}
m_opened = true;
m_destroyed = false;
}
void Win32Window::create (VideoMode mode, const String& title, Uint32 style, const ContextSettings& settings) {
// Set that this process is DPI aware and can handle DPI scaling
setProcessDpiAware();
// Register the window class at first call
if (windowCount == 0)
registerWindowClass();
// Compute position and size
HDC screenDC = GetDC(NULL);
int left = (GetDeviceCaps(screenDC, HORZRES) - static_cast<int>(mode.width)) / 2;
int top = (GetDeviceCaps(screenDC, VERTRES) - static_cast<int>(mode.height)) / 2;
int width = mode.width;
int height = mode.height;
ReleaseDC(NULL, screenDC);
// Choose the window style according to the Style parameter
DWORD win32Style = WS_VISIBLE;
if (style == Style::None)
{
win32Style |= WS_POPUP;
}
else
{
if (style & Style::Titlebar) win32Style |= WS_CAPTION | WS_MINIMIZEBOX;
if (style & Style::Resize) win32Style |= WS_THICKFRAME | WS_MAXIMIZEBOX;
if (style & Style::Close) win32Style |= WS_SYSMENU;
}
// In windowed mode, adjust width and height so that window will have the requested client area
if (!m_fullscreen)
{
RECT rectangle = {0, 0, width, height};
AdjustWindowRect(&rectangle, win32Style, false);
width = rectangle.right - rectangle.left;
height = rectangle.bottom - rectangle.top;
}
// Create the window
m_handle = CreateWindowW(className, title.toWideString().c_str(), win32Style, left, top, width, height, NULL, NULL, GetModuleHandle(NULL), this);
// Register to receive device interface change notifications (used for joystick connection handling)
DEV_BROADCAST_DEVICEINTERFACE deviceInterface = {sizeof(DEV_BROADCAST_DEVICEINTERFACE), DBT_DEVTYP_DEVICEINTERFACE, 0, GUID_DEVINTERFACE_HID, 0};
RegisterDeviceNotification(m_handle, &deviceInterface, DEVICE_NOTIFY_WINDOW_HANDLE);
// If we're the first window handle, we only need to poll for joysticks when WM_DEVICECHANGE message is received
if (m_handle)
{
/*if (handleCount == 0)
JoystickImpl::setLazyUpdates(true);*/
++handleCount;
}
// By default, the OS limits the size of the window the the desktop size,
// we have to resize it after creation to apply the real size
setSize(Vector2u(mode.width, mode.height));
// Switch to fullscreen if requested
if (m_fullscreen)
switchToFullscreen(mode);
// Increment window count
windowCount++;
m_opened = true;
m_destroyed = false;
}
void Win32Window::destroy() {
// TODO should we restore the cursor shape and visibility?
// Destroy the custom icon, if any
if (m_icon)
DestroyIcon(m_icon);
// If it's the last window handle we have to poll for joysticks again
if (m_handle)
{
--handleCount;
/*if (handleCount == 0)
JoystickImpl::setLazyUpdates(false);*/
}
if (!m_callback)
{
// Destroy the window
if (m_handle)
DestroyWindow(m_handle);
// Decrement the window count
windowCount--;
// Unregister window class if we were the last window
if (windowCount == 0)
UnregisterClassW(className, GetModuleHandleW(NULL));
}
else
{
// The window is external: remove the hook on its message callback
SetWindowLongPtrW(m_handle, GWLP_WNDPROC, m_callback);
}
m_destroyed = true;
m_opened = false;
}
////////////////////////////////////////////////////////////
Win32Window::~Win32Window()
{
// TODO should we restore the cursor shape and visibility?
// Destroy the custom icon, if any
if (m_icon)
DestroyIcon(m_icon);
// If it's the last window handle we have to poll for joysticks again
if (m_handle)
{
--handleCount;
/*if (handleCount == 0)
JoystickImpl::setLazyUpdates(false);*/
}
if (!m_callback)
{
// Destroy the window
if (m_handle)
DestroyWindow(m_handle);
// Decrement the window count
windowCount--;
// Unregister window class if we were the last window
if (windowCount == 0)
UnregisterClassW(className, GetModuleHandleW(NULL));
}
else
{
// The window is external: remove the hook on its message callback
SetWindowLongPtrW(m_handle, GWLP_WNDPROC, m_callback);
}
}
bool Win32Window::isOpen() const {
return m_opened;
}
void Win32Window::close() {
if (m_opened) {
m_opened = false;
}
}
////////////////////////////////////////////////////////////
WindowHandle Win32Window::getSystemHandle() const
{
return m_handle;
}
////////////////////////////////////////////////////////////
void Win32Window::processEvents()
{
// We process the window events only if we own it
if (!m_callback)
{
MSG message;
while (PeekMessageW(&message, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&message);
DispatchMessageW(&message);
}
}
}
////////////////////////////////////////////////////////////
Vector2i Win32Window::getPosition() const
{
RECT rect;
GetWindowRect(m_handle, &rect);
return Vector2i(rect.left, rect.top);
}
////////////////////////////////////////////////////////////
void Win32Window::setPosition(const Vector2i& position)
{
SetWindowPos(m_handle, NULL, position.x, position.y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
if(m_cursorGrabbed)
grabCursor(true);
}
////////////////////////////////////////////////////////////
Vector2u Win32Window::getSize() const
{
RECT rect;
GetClientRect(m_handle, &rect);
return Vector2u(rect.right - rect.left, rect.bottom - rect.top);
}
////////////////////////////////////////////////////////////
void Win32Window::setSize(const Vector2u& size)
{
// SetWindowPos wants the total size of the window (including title bar and borders),
// so we have to compute it
RECT rectangle = {0, 0, static_cast<long>(size.x), static_cast<long>(size.y)};
AdjustWindowRect(&rectangle, GetWindowLong(m_handle, GWL_STYLE), false);
int width = rectangle.right - rectangle.left;
int height = rectangle.bottom - rectangle.top;
SetWindowPos(m_handle, NULL, 0, 0, width, height, SWP_NOMOVE | SWP_NOZORDER);
}
////////////////////////////////////////////////////////////
void Win32Window::setTitle(const String& title)
{
SetWindowTextW(m_handle, title.toWideString().c_str());
}
////////////////////////////////////////////////////////////
void Win32Window::setIcon(unsigned int width, unsigned int height, const Uint8* pixels)
{
// First destroy the previous one
if (m_icon)
DestroyIcon(m_icon);
// Windows wants BGRA pixels: swap red and blue channels
std::vector<Uint8> iconPixels(width * height * 4);
for (std::size_t i = 0; i < iconPixels.size() / 4; ++i)
{
iconPixels[i * 4 + 0] = pixels[i * 4 + 2];
iconPixels[i * 4 + 1] = pixels[i * 4 + 1];
iconPixels[i * 4 + 2] = pixels[i * 4 + 0];
iconPixels[i * 4 + 3] = pixels[i * 4 + 3];
}
// Create the icon from the pixel array
m_icon = CreateIcon(GetModuleHandleW(NULL), width, height, 1, 32, NULL, &iconPixels[0]);
// Set it as both big and small icon of the window
if (m_icon)
{
SendMessageW(m_handle, WM_SETICON, ICON_BIG, (LPARAM)m_icon);
SendMessageW(m_handle, WM_SETICON, ICON_SMALL, (LPARAM)m_icon);
}
else
{
err() << "Failed to set the window's icon" << std::endl;
}
}
////////////////////////////////////////////////////////////
void Win32Window::setVisible(bool visible)
{
ShowWindow(m_handle, visible ? SW_SHOW : SW_HIDE);
}
////////////////////////////////////////////////////////////
void Win32Window::setMouseCursorVisible(bool visible)
{
// Don't call twice ShowCursor with the same parameter value;
// we don't want to increment/decrement the internal counter
// more than once.
if (visible != m_cursorVisible)
{
m_cursorVisible = visible;
ShowCursor(visible);
}
}
////////////////////////////////////////////////////////////
void Win32Window::setMouseCursorGrabbed(bool grabbed)
{
m_cursorGrabbed = grabbed;
grabCursor(m_cursorGrabbed);
}
////////////////////////////////////////////////////////////
void Win32Window::setKeyRepeatEnabled(bool enabled)
{
m_keyRepeatEnabled = enabled;
}
////////////////////////////////////////////////////////////
void Win32Window::requestFocus()
{
// Allow focus stealing only within the same process; compare PIDs of current and foreground window
DWORD thisPid = GetWindowThreadProcessId(m_handle, NULL);
DWORD foregroundPid = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
if (thisPid == foregroundPid)
{
// The window requesting focus belongs to the same process as the current window: steal focus
SetForegroundWindow(m_handle);
}
else
{
// Different process: don't steal focus, but create a taskbar notification ("flash")
FLASHWINFO info;
info.cbSize = sizeof(info);
info.hwnd = m_handle;
info.dwFlags = FLASHW_TRAY;
info.dwTimeout = 0;
info.uCount = 3;
FlashWindowEx(&info);
}
}
////////////////////////////////////////////////////////////
bool Win32Window::hasFocus() const
{
return m_handle == GetForegroundWindow();
}
////////////////////////////////////////////////////////////
void Win32Window::registerWindowClass()
{
WNDCLASSW windowClass;
windowClass.style = 0;
windowClass.lpfnWndProc = &Win32Window::globalOnEvent;
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.hInstance = GetModuleHandleW(NULL);
windowClass.hIcon = NULL;
windowClass.hCursor = 0;
windowClass.hbrBackground = 0;
windowClass.lpszMenuName = NULL;
windowClass.lpszClassName = className;
RegisterClassW(&windowClass);
}
////////////////////////////////////////////////////////////
void Win32Window::switchToFullscreen(const VideoMode& mode)
{
DEVMODE devMode;
devMode.dmSize = sizeof(devMode);
devMode.dmPelsWidth = mode.width;
devMode.dmPelsHeight = mode.height;
devMode.dmBitsPerPel = mode.bitsPerPixel;
devMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
// Apply fullscreen mode
if (ChangeDisplaySettingsW(&devMode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
{
err() << "Failed to change display mode for fullscreen" << std::endl;
return;
}
// Make the window flags compatible with fullscreen mode
SetWindowLongW(m_handle, GWL_STYLE, WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
SetWindowLongW(m_handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
// Resize the window so that it fits the entire screen
SetWindowPos(m_handle, HWND_TOP, 0, 0, mode.width, mode.height, SWP_FRAMECHANGED);
ShowWindow(m_handle, SW_SHOW);
// Set "this" as the current fullscreen window
fullscreenWindow = this;
}
////////////////////////////////////////////////////////////
void Win32Window::cleanup()
{
// Restore the previous video mode (in case we were running in fullscreen)
if (fullscreenWindow == this)
{
ChangeDisplaySettingsW(NULL, 0);
fullscreenWindow = NULL;
}
// Unhide the mouse cursor (in case it was hidden)
setMouseCursorVisible(true);
// No longer track the cursor
setTracking(false);
// No longer capture the cursor
ReleaseCapture();
}
////////////////////////////////////////////////////////////
void Win32Window::setTracking(bool track)
{
TRACKMOUSEEVENT mouseEvent;
mouseEvent.cbSize = sizeof(TRACKMOUSEEVENT);
mouseEvent.dwFlags = track ? TME_LEAVE : TME_CANCEL;
mouseEvent.hwndTrack = m_handle;
mouseEvent.dwHoverTime = HOVER_DEFAULT;
TrackMouseEvent(&mouseEvent);
}
////////////////////////////////////////////////////////////
void Win32Window::grabCursor(bool grabbed)
{
if (grabbed)
{
RECT rect;
GetClientRect(m_handle, &rect);
MapWindowPoints(m_handle, NULL, reinterpret_cast<LPPOINT>(&rect), 2);
ClipCursor(&rect);
}
else
{
ClipCursor(NULL);
}
}
void Win32Window::pushEvent(IEvent& event) {
m_ievents.push(event);
}
bool Win32Window::popEvent(IEvent& event) {
// If the event queue is empty, let's first check if new events are available from the OS
if (m_ievents.empty())
{
// Get events from the system
processEvents();
}
// Pop the first event of the queue, if it is not empty
if (!m_ievents.empty())
{
event = m_ievents.front();
m_ievents.pop();
return true;
}
return false;
}
bool Win32Window::pollEvent(IEvent& event) {
return popEvent(event);
}
////////////////////////////////////////////////////////////
void Win32Window::processEvent(UINT message, WPARAM wParam, LPARAM lParam)
{
// Don't process any message until window is created
if (m_handle == NULL)
return;
switch (message)
{
// Destroy event
case WM_DESTROY:
{
// Here we must cleanup resources !
cleanup();
break;
}
// Set cursor event
case WM_SETCURSOR:
{
// The mouse has moved, if the cursor is in our window we must refresh the cursor
if (LOWORD(lParam) == HTCLIENT)
SetCursor(m_lastCursor);
break;
}
// Close event
case WM_CLOSE:
{
IEvent event;
event.type = IEvent::EventType::WINDOW_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.window.type = IEvent::WindowEventID::WINDOW_EVENT_CLOSED;
event.window.timestamp = std::chrono::system_clock::to_time_t(time);
pushEvent(event);
break;
}
// Resize event
case WM_SIZE:
{
// Consider only events triggered by a maximize or a un-maximize
if (wParam != SIZE_MINIMIZED && !m_resizing && m_lastSize != getSize())
{
// Update the last handled size
m_lastSize = getSize();
// Push a resize event
IEvent event;
event.type = IEvent::EventType::WINDOW_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.window.type = IEvent::WindowEventID::WINDOW_EVENT_RESIZED;
event.window.timestamp = std::chrono::system_clock::to_time_t(time);
event.window.data1 = m_lastSize.x;
event.window.data2 = m_lastSize.y;
pushEvent(event);
// Restore/update cursor grabbing
grabCursor(m_cursorGrabbed);
}
break;
}
// Start resizing
case WM_ENTERSIZEMOVE:
{
m_resizing = true;
grabCursor(false);
break;
}
// Stop resizing
case WM_EXITSIZEMOVE:
{
m_resizing = false;
// Ignore cases where the window has only been moved
if(m_lastSize != getSize())
{
// Update the last handled size
m_lastSize = getSize();
// Push a resize event
IEvent event;
event.type = IEvent::EventType::WINDOW_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.window.type = IEvent::WindowEventID::WINDOW_EVENT_RESIZED;
event.window.timestamp = std::chrono::system_clock::to_time_t(time);
event.window.data1 = m_lastSize.x;
event.window.data2 = m_lastSize.y;
pushEvent(event);
}
// Restore/update cursor grabbing
grabCursor(m_cursorGrabbed);
break;
}
// The system request the min/max window size and position
case WM_GETMINMAXINFO:
{
// We override the returned information to remove the default limit
// (the OS doesn't allow windows bigger than the desktop by default)
MINMAXINFO* info = reinterpret_cast<MINMAXINFO*>(lParam);
info->ptMaxTrackSize.x = 50000;
info->ptMaxTrackSize.y = 50000;
break;
}
// Gain focus event
case WM_SETFOCUS:
{
// Restore cursor grabbing
grabCursor(m_cursorGrabbed);
IEvent event;
event.type = IEvent::EventType::WINDOW_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.window.type = IEvent::WindowEventID::WINDOW_EVENT_FOCUS_GAIGNED;
event.window.timestamp = std::chrono::system_clock::to_time_t(time);
pushEvent(event);
break;
}
// Lost focus event
case WM_KILLFOCUS:
{
// Ungrab the cursor
grabCursor(false);
IEvent event;
event.type = IEvent::EventType::WINDOW_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.window.type = IEvent::WindowEventID::WINDOW_EVENT_FOCUS_LOST;
event.window.timestamp = std::chrono::system_clock::to_time_t(time);
pushEvent(event);
break;
}
// Text event
case WM_CHAR:
{
if (m_keyRepeatEnabled || ((lParam & (1 << 30)) == 0))
{
// Get the code of the typed character
Uint32 character = static_cast<Uint32>(wParam);
// Check if it is the first part of a surrogate pair, or a regular character
if ((character >= 0xD800) && (character <= 0xDBFF))
{
// First part of a surrogate pair: store it and wait for the second one
m_surrogate = static_cast<Uint16>(character);
}
else
{
// Check if it is the second part of a surrogate pair, or a regular character
if ((character >= 0xDC00) && (character <= 0xDFFF))
{
// Convert the UTF-16 surrogate pair to a single UTF-32 value
Uint16 utf16[] = {m_surrogate, static_cast<Uint16>(character)};
sf::Utf16::toUtf32(utf16, utf16 + 2, &character);
m_surrogate = 0;
}
// Send a TextEntered event
IEvent textEvent;
textEvent.type = IEvent::EventType::TEXT_INPUT_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
textEvent.text.type = IEvent::EventType::TEXT_INPUT_EVENT;
textEvent.text.timestamp = std::chrono::system_clock::to_time_t(time);
textEvent.text.unicode = character;
pushEvent(textEvent);
}
}
break;
}
// Keydown event
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
{
if (m_keyRepeatEnabled || ((HIWORD(lParam) & KF_REPEAT) == 0))
{
IEvent event;
event.type = IEvent::EventType::KEYBOARD_EVENT;
event.keyboard.type = IEvent::KeyEventID::KEY_EVENT_PRESSED;
event.keyboard.alt = HIWORD(GetKeyState(VK_MENU)) != 0;
event.keyboard.control = HIWORD(GetKeyState(VK_CONTROL)) != 0;
event.keyboard.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0;
event.keyboard.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN));
event.keyboard.code = virtualKeyCodeToODFAEG(wParam, lParam);
pushEvent(event);
}
break;
}
// Keyup event
case WM_KEYUP:
case WM_SYSKEYUP:
{
IEvent event;
event.type = IEvent::EventType::KEYBOARD_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.keyboard.type = IEvent::KeyEventID::KEY_EVENT_RELEASED;
event.keyboard.timestamp = std::chrono::system_clock::to_time_t(time);
event.keyboard.alt = HIWORD(GetKeyState(VK_MENU)) != 0;
event.keyboard.control = HIWORD(GetKeyState(VK_CONTROL)) != 0;
event.keyboard.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0;
event.keyboard.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN));
event.keyboard.code = virtualKeyCodeToODFAEG(wParam, lParam);
pushEvent(event);
break;
}
// Vertical mouse wheel event
case WM_MOUSEWHEEL:
{
// Mouse position is in screen coordinates, convert it to window coordinates
POINT position;
position.x = static_cast<Int16>(LOWORD(lParam));
position.y = static_cast<Int16>(HIWORD(lParam));
ScreenToClient(m_handle, &position);
Int16 delta = static_cast<Int16>(HIWORD(wParam));
IEvent event;
event.type = IEvent::EventType::MOUSE_WHEEL_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::MOUSE_WHEEL_MOVED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseWheel.direction = delta / 120;
event.mouseWheel.x = position.x;
event.mouseWheel.y = position.y;
pushEvent(event);
break;
}
// Horizontal mouse wheel event
/* case WM_MOUSEHWHEEL:
{
// Mouse position is in screen coordinates, convert it to window coordinates
POINT position;
position.x = static_cast<Int16>(LOWORD(lParam));
position.y = static_cast<Int16>(HIWORD(lParam));
ScreenToClient(m_handle, &position);
Int16 delta = static_cast<Int16>(HIWORD(wParam));
Event event;
event.type = Event::MouseWheelScrolled;
event.mouseWheelScroll.wheel = Mouse::HorizontalWheel;
event.mouseWheelScroll.delta = -static_cast<float>(delta) / 120.f;
event.mouseWheelScroll.x = position.x;
event.mouseWheelScroll.y = position.y;
pushEvent(event);
break;
}*/
// Mouse left button down event
case WM_LBUTTONDOWN:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_PRESSED;
event.mouseButton.button = IMouse::Left;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse left button up event
case WM_LBUTTONUP:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_RELEASED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = IMouse::Left;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse right button down event
case WM_RBUTTONDOWN:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_PRESSED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = IMouse::Right;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse right button up event
case WM_RBUTTONUP:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_RELEASED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = IMouse::Right;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse wheel button down event
case WM_MBUTTONDOWN:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_PRESSED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = IMouse::Middle;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse wheel button up event
case WM_MBUTTONUP:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_RELEASED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = IMouse::Middle;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse X button down event
case WM_XBUTTONDOWN:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_PRESSED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = HIWORD(wParam) == XBUTTON1 ? IMouse::XButton1 : IMouse::XButton2;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse X button up event
case WM_XBUTTONUP:
{
IEvent event;
event.type = IEvent::EventType::MOUSE_BUTTON_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseButton.type = IEvent::MouseEventID::BUTTON_EVENT_RELEASED;
event.mouseButton.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseButton.button = HIWORD(wParam) == XBUTTON1 ? IMouse::XButton1 : IMouse::XButton2;
event.mouseButton.x = static_cast<Int16>(LOWORD(lParam));
event.mouseButton.y = static_cast<Int16>(HIWORD(lParam));
pushEvent(event);
break;
}
// Mouse leave event
case WM_MOUSELEAVE:
{
// Avoid this firing a second time in case the cursor is dragged outside
if (m_mouseInside)
{
m_mouseInside = false;
// Generate a MouseLeft event
IEvent event;
event.type = IEvent::EventType::MOUSE_EVENT_LEAVE;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseMotion.type = IEvent::EventType::MOUSE_EVENT_LEAVE;
pushEvent(event);
}
break;
}
// Mouse move event
case WM_MOUSEMOVE:
{
// Extract the mouse local coordinates
int x = static_cast<Int16>(LOWORD(lParam));
int y = static_cast<Int16>(HIWORD(lParam));
// Get the client area of the window
RECT area;
GetClientRect(m_handle, &area);
// Capture the mouse in case the user wants to drag it outside
if ((wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON | MK_XBUTTON1 | MK_XBUTTON2)) == 0)
{
// Only release the capture if we really have it
if (GetCapture() == m_handle)
ReleaseCapture();
}
else if (GetCapture() != m_handle)
{
// Set the capture to continue receiving mouse events
SetCapture(m_handle);
}
// If the cursor is outside the client area...
if ((x < area.left) || (x > area.right) || (y < area.top) || (y > area.bottom))
{
// and it used to be inside, the mouse left it.
if (m_mouseInside)
{
m_mouseInside = false;
// No longer care for the mouse leaving the window
setTracking(false);
// Generate a MouseLeft event
IEvent event;
event.type = IEvent::EventType::MOUSE_EVENT_LEAVE;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseMotion.type = IEvent::EventType::MOUSE_EVENT_LEAVE;
pushEvent(event);
}
}
else
{
// and vice-versa
if (!m_mouseInside)
{
m_mouseInside = true;
// Look for the mouse leaving the window
setTracking(true);
// Generate a MouseEntered event
IEvent event;
event.type = IEvent::EventType::MOUSE_EVENT_ENTER;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseMotion.type = IEvent::EventType::MOUSE_EVENT_ENTER;
pushEvent(event);
}
}
// Generate a MouseMove event
IEvent event;
event.type = IEvent::EventType::MOUSE_MOTION_EVENT;
std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now();
event.mouseMotion.type = IEvent::EventType::MOUSE_MOTION_EVENT;
event.mouseMotion.timestamp = std::chrono::system_clock::to_time_t(time);
event.mouseMotion.x = x;
event.mouseMotion.y = y;
pushEvent(event);
break;
}
/*case WM_DEVICECHANGE:
{
// Some sort of device change has happened, update joystick connections
if ((wParam == DBT_DEVICEARRIVAL) || (wParam == DBT_DEVICEREMOVECOMPLETE))
{
// Some sort of device change has happened, update joystick connections if it is a device interface
DEV_BROADCAST_HDR* deviceBroadcastHeader = reinterpret_cast<DEV_BROADCAST_HDR*>(lParam);
if (deviceBroadcastHeader && (deviceBroadcastHeader->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE))
JoystickImpl::updateConnections();
}
break;
}*/
}
}
////////////////////////////////////////////////////////////
IKeyboard::Key Win32Window::virtualKeyCodeToODFAEG(WPARAM key, LPARAM flags)
{
switch (key)
{
// Check the scancode to distinguish between left and right shift
case VK_SHIFT:
{
static UINT lShift = MapVirtualKeyW(VK_LSHIFT, MAPVK_VK_TO_VSC);
UINT scancode = static_cast<UINT>((flags & (0xFF << 16)) >> 16);
return scancode == lShift ? odfaeg::window::IKeyboard::LShift : odfaeg::window::IKeyboard::RShift;
}
// Check the "extended" flag to distinguish between left and right alt
case VK_MENU : return (HIWORD(flags) & KF_EXTENDED) ? odfaeg::window::IKeyboard::RAlt : odfaeg::window::IKeyboard::LAlt;
// Check the "extended" flag to distinguish between left and right control
case VK_CONTROL : return (HIWORD(flags) & KF_EXTENDED) ? odfaeg::window::IKeyboard::RControl : odfaeg::window::IKeyboard::LControl;
// Other keys are reported properly
case VK_LWIN: return odfaeg::window::IKeyboard::LSystem;
case VK_RWIN: return odfaeg::window::IKeyboard::RSystem;
case VK_APPS: return odfaeg::window::IKeyboard::Menu;
case VK_OEM_1: return odfaeg::window::IKeyboard::Semicolon;
case VK_OEM_2: return odfaeg::window::IKeyboard::Slash;
case VK_OEM_PLUS: return odfaeg::window::IKeyboard::Equal;
case VK_OEM_MINUS: return odfaeg::window::IKeyboard::Hyphen;
case VK_OEM_4: return odfaeg::window::IKeyboard::LBracket;
case VK_OEM_6: return odfaeg::window::IKeyboard::RBracket;
case VK_OEM_COMMA: return odfaeg::window::IKeyboard::Comma;
case VK_OEM_PERIOD: return odfaeg::window::IKeyboard::Period;
case VK_OEM_7: return odfaeg::window::IKeyboard::Quote;
case VK_OEM_5: return odfaeg::window::IKeyboard::Backslash;
case VK_OEM_3: return odfaeg::window::IKeyboard::Tilde;
case VK_ESCAPE: return odfaeg::window::IKeyboard::Escape;
case VK_SPACE: return odfaeg::window::IKeyboard::Space;
case VK_RETURN: return odfaeg::window::IKeyboard::Enter;
case VK_BACK: return odfaeg::window::IKeyboard::Backspace;
case VK_TAB: return odfaeg::window::IKeyboard::Tab;
case VK_PRIOR: return odfaeg::window::IKeyboard::PageUp;
case VK_NEXT: return odfaeg::window::IKeyboard::PageDown;
case VK_END: return odfaeg::window::IKeyboard::End;
case VK_HOME: return odfaeg::window::IKeyboard::Home;
case VK_INSERT: return odfaeg::window::IKeyboard::Insert;
case VK_DELETE: return odfaeg::window::IKeyboard::Delete;
case VK_ADD: return odfaeg::window::IKeyboard::Add;
case VK_SUBTRACT: return odfaeg::window::IKeyboard::Subtract;
case VK_MULTIPLY: return odfaeg::window::IKeyboard::Multiply;
case VK_DIVIDE: return odfaeg::window::IKeyboard::Divide;
case VK_PAUSE: return odfaeg::window::IKeyboard::Pause;
case VK_F1: return odfaeg::window::IKeyboard::F1;
case VK_F2: return odfaeg::window::IKeyboard::F2;
case VK_F3: return odfaeg::window::IKeyboard::F3;
case VK_F4: return odfaeg::window::IKeyboard::F4;
case VK_F5: return odfaeg::window::IKeyboard::F5;
case VK_F6: return odfaeg::window::IKeyboard::F6;
case VK_F7: return odfaeg::window::IKeyboard::F7;
case VK_F8: return odfaeg::window::IKeyboard::F8;
case VK_F9: return odfaeg::window::IKeyboard::F9;
case VK_F10: return odfaeg::window::IKeyboard::F10;
case VK_F11: return odfaeg::window::IKeyboard::F11;
case VK_F12: return odfaeg::window::IKeyboard::F12;
case VK_F13: return odfaeg::window::IKeyboard::F13;
case VK_F14: return odfaeg::window::IKeyboard::F14;
case VK_F15: return odfaeg::window::IKeyboard::F15;
case VK_LEFT: return odfaeg::window::IKeyboard::Left;
case VK_RIGHT: return odfaeg::window::IKeyboard::Right;
case VK_UP: return odfaeg::window::IKeyboard::Up;
case VK_DOWN: return odfaeg::window::IKeyboard::Down;
case VK_NUMPAD0: return odfaeg::window::IKeyboard::Numpad0;
case VK_NUMPAD1: return odfaeg::window::IKeyboard::Numpad1;
case VK_NUMPAD2: return odfaeg::window::IKeyboard::Numpad2;
case VK_NUMPAD3: return odfaeg::window::IKeyboard::Numpad3;
case VK_NUMPAD4: return odfaeg::window::IKeyboard::Numpad4;
case VK_NUMPAD5: return odfaeg::window::IKeyboard::Numpad5;
case VK_NUMPAD6: return odfaeg::window::IKeyboard::Numpad6;
case VK_NUMPAD7: return odfaeg::window::IKeyboard::Numpad7;
case VK_NUMPAD8: return odfaeg::window::IKeyboard::Numpad8;
case VK_NUMPAD9: return odfaeg::window::IKeyboard::Numpad9;
case 'A': return odfaeg::window::IKeyboard::A;
case 'Z': return odfaeg::window::IKeyboard::Z;
case 'E': return odfaeg::window::IKeyboard::E;
case 'R': return odfaeg::window::IKeyboard::R;
case 'T': return odfaeg::window::IKeyboard::T;
case 'Y': return odfaeg::window::IKeyboard::Y;
case 'U': return odfaeg::window::IKeyboard::U;
case 'I': return odfaeg::window::IKeyboard::I;
case 'O': return odfaeg::window::IKeyboard::O;
case 'P': return odfaeg::window::IKeyboard::P;
case 'Q': return odfaeg::window::IKeyboard::Q;
case 'S': return odfaeg::window::IKeyboard::S;
case 'D': return odfaeg::window::IKeyboard::D;
case 'F': return odfaeg::window::IKeyboard::F;
case 'G': return odfaeg::window::IKeyboard::G;
case 'H': return odfaeg::window::IKeyboard::H;
case 'J': return odfaeg::window::IKeyboard::J;
case 'K': return odfaeg::window::IKeyboard::K;
case 'L': return odfaeg::window::IKeyboard::L;
case 'M': return odfaeg::window::IKeyboard::M;
case 'W': return odfaeg::window::IKeyboard::W;
case 'X': return odfaeg::window::IKeyboard::X;
case 'C': return odfaeg::window::IKeyboard::C;
case 'V': return odfaeg::window::IKeyboard::V;
case 'B': return odfaeg::window::IKeyboard::B;
case 'N': return odfaeg::window::IKeyboard::N;
case '0': return odfaeg::window::IKeyboard::Num0;
case '1': return odfaeg::window::IKeyboard::Num1;
case '2': return odfaeg::window::IKeyboard::Num2;
case '3': return odfaeg::window::IKeyboard::Num3;
case '4': return odfaeg::window::IKeyboard::Num4;
case '5': return odfaeg::window::IKeyboard::Num5;
case '6': return odfaeg::window::IKeyboard::Num6;
case '7': return odfaeg::window::IKeyboard::Num7;
case '8': return odfaeg::window::IKeyboard::Num8;
case '9': return odfaeg::window::IKeyboard::Num9;
}
return odfaeg::window::IKeyboard::Unknown;
}
////////////////////////////////////////////////////////////
LRESULT CALLBACK Win32Window::globalOnEvent(HWND handle, UINT message, WPARAM wParam, LPARAM lParam)
{
// Associate handle and Window instance when the creation message is received
if (message == WM_CREATE)
{
// Get Win32Window instance (it was passed as the last argument of CreateWindow)
LONG_PTR window = (LONG_PTR)reinterpret_cast<CREATESTRUCT*>(lParam)->lpCreateParams;
// Set as the "user data" parameter of the window
SetWindowLongPtrW(handle, GWLP_USERDATA, window);
}
// Get the WindowImpl instance corresponding to the window handle
Win32Window* window = handle ? reinterpret_cast<Win32Window*>(GetWindowLongPtr(handle, GWLP_USERDATA)) : NULL;
// Forward the event to the appropriate function
if (window)
{
window->processEvent(message, wParam, lParam);
if (window->m_callback)
return CallWindowProcW(reinterpret_cast<WNDPROC>(window->m_callback), handle, message, wParam, lParam);
}
// We don't forward the WM_CLOSE message to prevent the OS from automatically destroying the window
if (message == WM_CLOSE)
return 0;
// Don't forward the menu system command, so that pressing ALT or F10 doesn't steal the focus
if ((message == WM_SYSCOMMAND) && (wParam == SC_KEYMENU))
return 0;
return DefWindowProcW(handle, message, wParam, lParam);
}
}
}
Sinon comment on fait pour installer une librairie avec cwc ?
../ODFAEG/src/odfaeg/Graphics/3D/../../../../include/odfaeg/Graphics/3D/model.hpp:4:10: fatal error: assimp/Importer.hpp: No such file or directory
#include <assimp/Importer.hpp>
Pourquoi générer un exécutable ? C'est une librairie il faut générer des .a et des .dll
Et il va les installer ou ?
Ca compile enfin mais j'ai pleins de undefined references :
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x27): undefined reference to `EVP_aes_256_ecb'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x49): undefined reference to `EVP_EncryptInit_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x77): undefined reference to `EVP_EncryptUpdate'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x98): undefined reference to `EVP_EncryptFinal_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x24): undefined reference to `EVP_aes_256_ecb'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x46): undefined reference to `EVP_DecryptInit_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x74): undefined reference to `EVP_DecryptUpdate'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x95): undefined reference to `EVP_DecryptFinal_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xd0): undefined reference to `ERR_load_crypto_strings'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xd5): undefined reference to `ERR_get_error'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xe1): undefined reference to `ERR_error_string'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x13): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x31): undefined reference to `_imp____glewUniform1i'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x53): undefined reference to `_imp____glewActiveTexture'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x85): undefined reference to `_imp___ZN6odfaeg7graphic7Texture4bindEPKS1_NS1_14CoordinateTypeE'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0xb5): undefined reference to `_imp____glewUniform1iARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0xd7): undefined reference to `_imp____glewActiveTextureARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x113): undefined reference to `_imp____glewActiveTextureARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x141): undefined reference to `_imp____glewActiveTexture'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x2e): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x61): undefined reference to `_imp____glewUniform1i'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x96): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0xca): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0xf4): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x127): undefined reference to `_imp____glewUniform1iARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader15getVersionMajorEv+0xb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader15getVersionMinorEv+0xb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0x3e): undefined reference to `_imp___ZN2sf10GlResourceC2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0xbb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0xe6): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0x151): undefined reference to `_imp___ZN2sf10GlResourceD2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0x3f): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0x9d): undefined reference to `_imp___ZN2sf10GlResourceD2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0xb4): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x83): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x120): undefined reference to `_imp____glewCreateProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x161): undefined reference to `_imp____glewCreateShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x19e): undefined reference to `_imp____glewShaderSource'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1c5): undefined reference to `_imp____glewCompileShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1fe): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x23f): undefined reference to `_imp____glewAttachShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x272): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x2a9): undefined reference to `_imp____glewCreateShaderObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x2cf): undefined reference to `_imp____glewShaderSourceARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x30f): undefined reference to `_imp____glewCompileShaderARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x348): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x389): undefined reference to `_imp____glewAttachObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x3bc): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x3f0): undefined reference to `_imp____glewLinkProgramARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x43a): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x470): undefined reference to `glFlush@0'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x4b1): undefined reference to `_imp____glewCreateShaderObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x4ee): undefined reference to `_imp____glewShaderSourceARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x515): undefined reference to `_imp____glewCompileShaderARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x54e): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x58f): undefined reference to `_imp____glewAttachObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x5c2): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x5fe): undefined reference to `_imp____glewLinkProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x648): undefined reference to `_imp____glewGetProgramiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x683): undefined reference to `_imp____glewGetProgramiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x719): undefined reference to `_imp____glewGetProgramInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x744): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x7c5): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x81e): undefined reference to `_imp____glewCreateShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x844): undefined reference to `_imp____glewShaderSource'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x884): undefined reference to `_imp____glewCompileShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x8bd): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x8fe): undefined reference to `_imp____glewAttachShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x931): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x964): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x993): undefined reference to `_imp____glewCreateProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x9d6): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x9f5): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xb1f): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xb44): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xba6): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xbc5): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xcf1): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xd34): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xd53): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xe7d): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xea2): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x10ae): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1120): undefined reference to `_imp____glewGetShaderInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x113f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1241): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x126a): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x130e): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1380): undefined reference to `_imp____glewGetShaderInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x139f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x149b): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x14c4): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_4TypeE+0xd2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_+0xe7): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_+0x192): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamENS1_4TypeE+0xd2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamES4_+0xe7): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamES4_+0x152): more undefined references to `_imp___ZN2sf3errEv' follow
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x90): undefined reference to `_imp____glewGetAttribLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xa8): undefined reference to `_imp____glewGetAttribLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x139): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x27): undefined reference to `glGetIntegerv@8'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x59): undefined reference to `_imp____glewBindAttribLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xb5): undefined reference to `_imp____glewBindAttribLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xe2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x90): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xa8): undefined reference to `_imp____glewGetUniformLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x139): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x74): undefined reference to `_imp____glewUniform1ui'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0xd1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0xfe): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x114): undefined reference to `_imp____glewUniform1ui'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x74): undefined reference to `_imp____glewUniform1fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0xd1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0xfe): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x114): undefined reference to `_imp____glewUniform1f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x74): undefined reference to `_imp____glewUniform2fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0xd3): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x100): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x116): undefined reference to `_imp____glewUniform2f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x74): undefined reference to `_imp____glewUniform3fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0xe1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x10e): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x124): undefined reference to `_imp____glewUniform3f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x74): undefined reference to `_imp____glewUniform4fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0xe3): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x110): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x126): undefined reference to `_imp____glewUniform4f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x2f): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x68): undefined reference to `_imp____glewUniformMatrix4fv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x7d): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0xe1): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0xf0): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x16f): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x174): undefined reference to `_imp____glewUniformMatrix4fvARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x5b): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x76): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x11e): undefined reference to `_imp___ZN6odfaeg7graphic15TransformMatrix9getMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x133): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f9transposeEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x148): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x208): undefined reference to `_imp____glewUniformMatrix4fvARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x24d): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7TextureE+0x14b): undefined reference to `glGetIntegerv@8'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7TextureE+0x22f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text$_ZN6odfaeg4core11ApplicationD1Ev[__ZN6odfaeg4core11ApplicationD1Ev]+0x136): undefined reference to `_imp___ZN6odfaeg7graphic22RenderComponentManagerD1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text$_ZN6odfaeg4core11ApplicationD0Ev[__ZN6odfaeg4core11ApplicationD0Ev]+0x136): undefined reference to `_imp___ZN6odfaeg7graphic22RenderComponentManagerD1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text.startup._GLOBAL__sub_I__ZN6odfaeg4core11Application3appE+0xad): undefined reference to `_imp___ZN2sf5ClockC1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ENS0_6ActionENS0_12FastDelegateIvEE+0x9b): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ENS0_6ActionENS0_12FastDelegateIbEENS3_IvEE+0x9b): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ERKS1_+0xb2): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command11isTriggeredEv+0x68): undefined reference to `_imp___ZN6odfaeg4core6Action11isTriggeredEv'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command11isTriggeredEv+0x7b): undefined reference to `_imp___ZN6odfaeg4core6Action11isTriggeredEv'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command19containsBufferEventERNS_6window6IEventE+0x8): undefined reference to `_imp___ZN6odfaeg4core6Action13containsEventERNS_6window6IEventE'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandaSERKS1_+0x6a): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3RayC2ENS0_5Vec3fES2_+0x4f): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x56): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x5c): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
PS : j'ai du faire un énorme tri car il y avait plein de fichiers et de code que je n'utilise plus.
Salut MOUSE_MOVED est aussi un mot clé déjà utilisé ?
Oui je l'ai renommé, il aimait pas...
OmbreNoire a écrit:
Pourquoi générer un exécutable ? C'est une librairie il faut générer des .a et des .dll
Et il va les installer ou ?
Je reste mitigé sur la génération de précompilé, l'utilisateur perd en quelque sorte la possibilité d'utilisé les options de compilation souhaité, le compilateur voulu, les optimisation voulu, etc.
Puisqu'avec Cwc, tout est configuré automatiquement, c'est pratiquement plus nécessaire.
Néanmoins, il y a quand même certains avantages, alors oui c'est possible.
Je peux utiliser le framework sans le linké au projet ODFAEGDEMO, Cwc va le configuré automatiquement ?
Mmm...intéressant il faudrait que je test.
Bon, j'ai essayé de compilé la démo mais ...
1112basic_stringIcSt11char_traitsIcESaIcEEENS_6window15ContextSettingsE+0x0): first defined here
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x27): undefined reference to `EVP_aes_256_ecb'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x49): undefined reference to `EVP_EncryptInit_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x77): undefined reference to `EVP_EncryptUpdate'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_encryptEPKhjRj+0x98): undefined reference to `EVP_EncryptFinal_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x24): undefined reference to `EVP_aes_256_ecb'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x46): undefined reference to `EVP_DecryptInit_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x74): undefined reference to `EVP_DecryptUpdate'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0x95): undefined reference to `EVP_DecryptFinal_ex'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xd0): undefined reference to `ERR_load_crypto_strings'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xd5): undefined reference to `ERR_get_error'
obj/cpp_Windows_O2/lib/ODFAEG/aes.o:aes.cpp:(.text$_ZN6odfaeg7network7AES_ENC12ossl_decryptEPKhjRj+0xe1): undefined reference to `ERR_error_string'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x13): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x31): undefined reference to `_imp____glewUniform1i'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x53): undefined reference to `_imp____glewActiveTexture'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x85): undefined reference to `_imp___ZN6odfaeg7graphic7Texture4bindEPKS1_NS1_14CoordinateTypeE'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0xb5): undefined reference to `_imp____glewUniform1iARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0xd7): undefined reference to `_imp____glewActiveTextureARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x113): undefined reference to `_imp____glewActiveTextureARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZNK6odfaeg7graphic6Shader12bindTexturesEv+0x141): undefined reference to `_imp____glewActiveTexture'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x2e): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x61): undefined reference to `_imp____glewUniform1i'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x96): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0xca): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0xf4): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader4bindEPKS1_+0x127): undefined reference to `_imp____glewUniform1iARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader15getVersionMajorEv+0xb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader15getVersionMinorEv+0xb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0x3e): undefined reference to `_imp___ZN2sf10GlResourceC2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0xbb): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0xe6): undefined reference to `glGetString@4'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderC2Ev+0x151): undefined reference to `_imp___ZN2sf10GlResourceD2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0x3f): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0x9d): undefined reference to `_imp___ZN2sf10GlResourceD2Ev'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6ShaderD2Ev+0xb4): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x83): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x120): undefined reference to `_imp____glewCreateProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x161): undefined reference to `_imp____glewCreateShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x19e): undefined reference to `_imp____glewShaderSource'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1c5): undefined reference to `_imp____glewCompileShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1fe): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x23f): undefined reference to `_imp____glewAttachShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x272): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x2a9): undefined reference to `_imp____glewCreateShaderObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x2cf): undefined reference to `_imp____glewShaderSourceARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x30f): undefined reference to `_imp____glewCompileShaderARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x348): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x389): undefined reference to `_imp____glewAttachObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x3bc): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x3f0): undefined reference to `_imp____glewLinkProgramARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x43a): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x470): undefined reference to `glFlush@0'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x4b1): undefined reference to `_imp____glewCreateShaderObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x4ee): undefined reference to `_imp____glewShaderSourceARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x515): undefined reference to `_imp____glewCompileShaderARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x54e): undefined reference to `_imp____glewGetObjectParameterivARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x58f): undefined reference to `_imp____glewAttachObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x5c2): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x5fe): undefined reference to `_imp____glewLinkProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x648): undefined reference to `_imp____glewGetProgramiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x683): undefined reference to `_imp____glewGetProgramiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x719): undefined reference to `_imp____glewGetProgramInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x744): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x7c5): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x81e): undefined reference to `_imp____glewCreateShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x844): undefined reference to `_imp____glewShaderSource'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x884): undefined reference to `_imp____glewCompileShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x8bd): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x8fe): undefined reference to `_imp____glewAttachShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x931): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x964): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x993): undefined reference to `_imp____glewCreateProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x9d6): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x9f5): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xb1f): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xb44): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xba6): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xbc5): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xcf1): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xd34): undefined reference to `_imp____glewGetInfoLogARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xd53): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xe7d): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0xea2): undefined reference to `_imp____glewDeleteObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x10ae): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1120): undefined reference to `_imp____glewGetShaderInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x113f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1241): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x126a): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x130e): undefined reference to `_imp____glewGetShaderiv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x1380): undefined reference to `_imp____glewGetShaderInfoLog'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x139f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x149b): undefined reference to `_imp____glewDeleteShader'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader7compileEPKcS3_+0x14c4): undefined reference to `_imp____glewDeleteProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_4TypeE+0xd2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_+0xe7): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_+0x192): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamENS1_4TypeE+0xd2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamES4_+0xe7): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader14loadFromStreamERN2sf11InputStreamES4_+0x152): more undefined references to `_imp___ZN2sf3errEv' follow
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x90): undefined reference to `_imp____glewGetAttribLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xa8): undefined reference to `_imp____glewGetAttribLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader23getVertexAttribLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x139): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x27): undefined reference to `glGetIntegerv@8'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x59): undefined reference to `_imp____glewBindAttribLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xb5): undefined reference to `_imp____glewBindAttribLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader13bindAttributeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xe2): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x90): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xa8): undefined reference to `_imp____glewGetUniformLocationARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader16getParamLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x139): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x74): undefined reference to `_imp____glewUniform1ui'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0xd1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0xfe): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj+0x114): undefined reference to `_imp____glewUniform1ui'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x74): undefined reference to `_imp____glewUniform1fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0xd1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0xfe): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEf+0x114): undefined reference to `_imp____glewUniform1f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x74): undefined reference to `_imp____glewUniform2fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0xd3): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x100): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEff+0x116): undefined reference to `_imp____glewUniform2f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x74): undefined reference to `_imp____glewUniform3fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0xe1): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x10e): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfff+0x124): undefined reference to `_imp____glewUniform3f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x20): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x2f): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x74): undefined reference to `_imp____glewUniform4fARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0xe3): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x110): undefined reference to `_imp____glewGetUniformLocation'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEffff+0x126): undefined reference to `_imp____glewUniform4f'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x2f): undefined reference to `_imp____glewUseProgram'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x68): undefined reference to `_imp____glewUniformMatrix4fv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x7d): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0xe1): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0xf0): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x16f): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_4math8Matrix4fE+0x174): undefined reference to `_imp____glewUniformMatrix4fvARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x5b): undefined reference to `_imp____glewGetHandleARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x76): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x11e): undefined reference to `_imp___ZN6odfaeg7graphic15TransformMatrix9getMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x133): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f9transposeEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x148): undefined reference to `_imp___ZN6odfaeg4math8Matrix4f10toGlMatrixEv'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x208): undefined reference to `_imp____glewUniformMatrix4fvARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPNS0_15TransformMatrixESaISC_EE+0x24d): undefined reference to `_imp____glewUseProgramObjectARB'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7TextureE+0x14b): undefined reference to `glGetIntegerv@8'
obj/cpp_Windows_O2/lib/ODFAEG/shader.o:shader.cpp:(.text$_ZN6odfaeg7graphic6Shader12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7TextureE+0x22f): undefined reference to `_imp___ZN2sf3errEv'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text$_ZN6odfaeg4core11ApplicationD1Ev[__ZN6odfaeg4core11ApplicationD1Ev]+0x136): undefined reference to `_imp___ZN6odfaeg7graphic22RenderComponentManagerD1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text$_ZN6odfaeg4core11ApplicationD0Ev[__ZN6odfaeg4core11ApplicationD0Ev]+0x136): undefined reference to `_imp___ZN6odfaeg7graphic22RenderComponentManagerD1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/application.o:application.cpp:(.text.startup._GLOBAL__sub_I__ZN6odfaeg4core11Application3appE+0xad): undefined reference to `_imp___ZN2sf5ClockC1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ENS0_6ActionENS0_12FastDelegateIvEE+0x9b): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ENS0_6ActionENS0_12FastDelegateIbEENS3_IvEE+0x9b): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandC2ERKS1_+0xb2): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command11isTriggeredEv+0x68): undefined reference to `_imp___ZN6odfaeg4core6Action11isTriggeredEv'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command11isTriggeredEv+0x7b): undefined reference to `_imp___ZN6odfaeg4core6Action11isTriggeredEv'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7Command19containsBufferEventERNS_6window6IEventE+0x8): undefined reference to `_imp___ZN6odfaeg4core6Action13containsEventERNS_6window6IEventE'
obj/cpp_Windows_O2/lib/ODFAEG/command.o:command.cpp:(.text$_ZN6odfaeg4core7CommandaSERKS1_+0x6a): undefined reference to `_imp___ZN6odfaeg4core6ActionC1ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3RayC2ENS0_5Vec3fES2_+0x4f): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x56): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x5c): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x86): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f3dotERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x106): undefined reference to `_imp___ZN6odfaeg4math5Vec3f4dot2ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/odfaeg/Math/ray.o:ray.cpp:(.text$_ZN6odfaeg4math3Ray15intersectsWhereERS1_+0x131): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f11magnSquaredEv'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox7getSizeEv+0x23): undefined reference to `_imp___ZN6odfaeg4math5Vec3fC1Efff'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox11getPositionEv+0x20): undefined reference to `_imp___ZN6odfaeg4math5Vec3fC1Efff'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS_4math3RayEbRNS0_18CollisionResultSet4InfoE+0xff): undefined reference to `_imp___ZN6odfaeg4math4Math3absEf'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x105): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmlEf'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x129): undefined reference to `_imp___ZN6odfaeg4math5Vec3fplERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x137): undefined reference to `_imp___ZN6odfaeg4math5Vec3faSERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x1c6): undefined reference to `_imp___ZN6odfaeg4math4Math3absEf'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x271): undefined reference to `_imp___ZN6odfaeg4math5Vec3faSERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x27b): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmlEf'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox15intersectsWhereERNS_4math3RayERNS2_5Vec3fES6_RNS0_18CollisionResultSet4InfoE+0x293): undefined reference to `_imp___ZN6odfaeg4math5Vec3fplERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x60b): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x753): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x76e): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x7eb): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x7fa): undefined reference to `_imp___ZN6odfaeg4math5Vec3f15getAngleBetweenERKS1_S3_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0xdcd): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0xf1f): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0xf3a): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0xfb7): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0xfc6): undefined reference to `_imp___ZN6odfaeg4math5Vec3f15getAngleBetweenERKS1_S3_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x1344): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERS1_RNS0_18CollisionResultSet4InfoE+0x1608): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE[__ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE]+0x23): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE[__ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE]+0x70): undefined reference to `_imp___ZN6odfaeg4math5Vec3f4dot2ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE[__ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE]+0x112): undefined reference to `_imp___ZN6odfaeg4math5Vec3fC1Ev'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE[__ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE]+0x13e): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE[__ZN6odfaeg4math8Triangle10intersectsERNS0_3RayE]+0x3bb): undefined reference to `_imp___ZN6odfaeg4math5Vec3faSERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x20b): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f11isNulVectorEv'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x230): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x3b2): undefined reference to `_imp___ZN6odfaeg4math5Vec3f4dot2ERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x4d6): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x5a9): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x69a): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x7ed): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x92a): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x987): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg4math8Triangle10intersectsES1_[__ZN6odfaeg4math8Triangle10intersectsES1_]+0x9e6): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x3b0): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x51e): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x53c): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x5bc): undefined reference to `_imp___ZNK6odfaeg4math5Vec3f5crossERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x5d8): undefined reference to `_imp___ZN6odfaeg4math5Vec3f15getAngleBetweenERKS1_S3_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0x95a): undefined reference to `_imp___ZN6odfaeg4math5Vec3fmiERKS1_'
obj/cpp_Windows_O2/lib/ODFAEG/boundingBox.o:boundingBox.cpp:(.text$_ZN6odfaeg6physic11BoundingBox10intersectsERNS0_18BoundingPolyhedronERNS0_18CollisionResultSet4InfoE+0xabf): undefined reference to `_imp___ZN6odfaeg4math5Vec3f18computeDistSquaredERKS1_'
C:/Users/Laurent/Downloads/Cwc-0.0.95.7/Cwc-0.0.95.7/Toolchain/VLianceTool/LibRT/LibRT-8.0.3/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
--Stop Build--
--- End with 3 errors --- 4.3 sec
Et il y a encore plus d'undefined references, le message était trop long alors j'ai du retirer des lignes.
Je n'arrive pas à compiler glew avec cmake et mingw il me dit glew dir not found quand je le télécharge sur git et dans les binaries il ne me donne que des .lib.
Et assimp non plus j'ai une erreur en compilation :
'
C:\Program' n’est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [contrib\zlib\CMakeFiles\zlib.dir\build.make:61: contrib/zlib/zlib1rc.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:272: contrib/zlib/CMakeFiles/zlib.dir/all] Error 2
mingw32-make: *** [Makefile:129: all] Error 2
Comment compiler ces libs avec cwc et générer les .a comme tu l'a fais avec SFML ?
Et comment tu as fait pour avoir toutes les dépendances (les .a) de SFML et SFML en static ?
Dans le meilleurs des monde, il est mieux de compiler avec le moteur, comme tu peux le voir, on se retrouve avec des build qui ont été compilé avec différents compilateur, ce qui peu causer des incompatibilités.
Si c'est un projets Github, Cwc peut même aller les télécharger automatiquement (les releases). Mais pour l'instant je dirais, concentre toi à le faire fonctionner avec les libs pré-compilé.
Pour OpenSSL, si tu veux j'ai déjà un projet qui l'utilise auquel tu peux prendre exemple: Restclient-cpp
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
Justement SFML et Glew ont été compilé avec mingw, et ODFAEG avec cwc, ça ne va pas posé de problème au linkage vu que tu utilises différent compilateurs ?
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.