Bonsoir à tous.
Aujourd'hui me prend l'envie de tester hydrax, et surtout de l'utiliser dans mon moteur. ni une ni deux, je télécharge la dernière version, la 5.1, qui offre déjà des projet code::blocks, que du bonheur donc, enfin presque... (et la c'est le drame !)

Deux problèmes se posent...


1] Compilation de la dll

Je parviens, avec plus de 300 warnings, à compiler hydrax en tant que bibliothèque statique. Mais lorsque je souhaite compiler la dll, pour la réutiliser avec mes exécutables... rien à faire. Je me tape de plus une erreur incompréhensible. Et le forum d'ogre ou google sur ne sont point bavard.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
||=== Hydrax, Release ===|
 first defineCreating library file||bin\Release\libHydrax.a|
||=== Build finished: 1 errors, 0 warnings ===|

2] Demo : compilation avec le .a de Hydrax

Bah j'obtiens un tas d'erreur de linking incompréhensible à mon égard...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
||=== Demo1, Release ===|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Image.h|268|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\MaterialManager.h|380|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\RttManager.h|516|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\TextureManager.h|139|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Noise\Perlin\..\..\RttManager.h|516|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Noise\Perlin\..\..\GPUNormalMapManager.h|155|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Noise\Perlin\..\Noise.h|136|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Noise\Perlin\Perlin.h|283|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\DecalsManager.h|292|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\GPUNormalMapManager.h|155|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\CfgFileManager.h|212|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\..\Noise\Noise.h|136|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\..\MaterialManager.h|380|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\..\GPUNormalMapManager.h|155|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\Module.h|160|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Noise\Perlin\Perlin.h|283|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\ProjectedGrid\..\Module.h|160|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\Hydrax\Hydrax\Modules\ProjectedGrid\ProjectedGrid.h|278|warning: no newline at end of file|
I:\Jeux\D\DOOCE\Hydrax-v0.5.1\Demo1\src\main.cpp|273|warning: "/*" within comment|
||Info: resolving Ogre::Math::fDeg2Rad     by linking to __imp___ZN4Ogre4Math8fDeg2RadE |
||Info: resolving Ogre::Vector3::ZERO     by linking to __imp___ZN4Ogre7Vector34ZEROE |
||Info: resolving Ogre::Math::PI     by linking to __imp___ZN4Ogre4Math2PIE |
||Info: resolving Ogre::StringUtil::BLANK      by linking to __imp___ZN4Ogre10StringUtil5BLANKE |
||Info: resolving Ogre::Quaternion::IDENTITY      by linking to __imp___ZN4Ogre10Quaternion8IDENTITYE |
||Info: resolving Ogre::Vector3::NEGATIVE_UNIT_Y      by linking to __imp___ZN4Ogre7Vector315NEGATIVE_UNIT_YE |
||Info: resolving Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME       by linking to __imp___ZN4Ogre20ResourceGroupManager27DEFAULT_RESOURCE_GROUP_NAMEE |
||warning: auto-importing has been activated without --enable-auto-import specified on the command line.|
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.obj\Release\src\main.o:main.cpp:(.text$_ZN25ExampleHydraxDemoListener12changeSkyBoxEv[ExampleHydraxDemoListener::changeSkyBox()]+0xd6)||undefined reference to `__imp___ZN6Hydrax6Hydrax14setSunPositionERKN4Ogre7Vector3E'|
obj\Release\src\main.o:main.cpp:(.text$_ZN25ExampleHydraxDemoListener12changeSkyBoxEv[ExampleHydraxDemoListener::changeSkyBox()]+0xf7)||undefined reference to `__imp___ZN6Hydrax6Hydrax11setSunColorERKN4Ogre7Vector3E'|
)]+0xd7)||undefined reference to `__imp___ZN6Hydrax6Hydrax6updateERKf'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x2cd)||undefined reference to `__imp___ZN6Hydrax6HydraxC1EPN4Ogre12SceneManagerEPNS1_6CameraEPNS1_8ViewportE'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x305)||undefined reference to `__imp___ZN6Hydrax5Noise6PerlinC1Ev'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x407)||undefined reference to `__imp___ZN6Hydrax6Module13ProjectedGridC1EPNS_6HydraxEPNS_5Noise5NoiseERKN4Ogre5PlaneERKNS_15MaterialManager10NormalModeERKNS1_7OptionsE'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x441)||undefined reference to `__imp___ZN6Hydrax6Hydrax9setModuleEPNS_6Module6ModuleERKb'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x496)||undefined reference to `__imp___ZNK6Hydrax14CfgFileManager4loadERKSs'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x4cd)||undefined reference to `__imp___ZN6Hydrax6Hydrax6createEv'|
obj\Release\src\main.o:main.cpp:(.text$_ZN9SampleApp11createSceneEv[SampleApp::createScene()]+0x5ff)||undefined reference to `__imp___ZN6Hydrax15MaterialManager17addDepthTechniqueEPN4Ogre9TechniqueERKb'|
||=== Build finished: 10 errors, 20 warnings ===|

Je n'ai rien modifié, juste réutilisé directement le projet code::blocks fournit...
faut-il effectuer une modification particulière ? Lier la dll de Hydrax à la démo dans les liens ?

Ce serais déjà bien que je puisse compiler la dll...