Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas Para Compilar Los Ejemplos

Iniciado por , 21 de Febrero de 2005, 07:34:26 PM

« anterior - próximo »

 A ver, preguntas del millón...

¿Se pueden compilar los ejemplos con Dev C++? ¿Cómo? ¿O hace falta usar VC++? ¿Hace falta el SDK de DirectX 9? Por la información que hay en la web deduje que hacía falta si quería compilar Looverlib, pero para usarlas en  juegos no lo tengo claro?

Vamos, resumiendo, que tengo Dev C++ y al compilar los ejemplos tengo tropocientos errores de compilación (he enlazado la libreria .lib desde las opciones del proyecto, pero no sé si hace falta hacer algo más), y un buen montón de "file not found".

¿Alguien me echa un cable?

Sacrifai

 ¿Has incluido la carpeta de los headers en las opciones?

Loover

 La SDK de direct3d 9 no hace falta, tan solo si quieres compilar la librería en sí.

Nunca he compilado ningún ejemplo con devc++. En principio deberían funcionar añadiendo la .lib al proyecto así como la carpeta "LibHeaders" y hacer un include "LibHeaders/Loover.h"

Lo que ya no sé es si las .dll compiladas con vc++6 funcionan para devc++. ¿Alguien sabe esto?

Los ejemplos vienen acompañados de momento con un archivo de proyecto vc++6, listo para ser compilado. A ver si puedo echarle un ojo al devc++
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

 Sí. Pero me sigue sin encontrar muchos ficheros. Creo que es porque en los includes de los headers ponen rutas en plan "LibHeaders/2d_h/LOV_ImageManager.h" en lugar de "../2d_h/LOV_ImageManager.h". De todos modos, aun arreglando esto, me pide headers que creo que son del SDK de DirectX 9... Por eso pregunto si hace falta el SDK de DirectX 9 y si sirve Dev C++ (y cómo demonios lo hago funcionar, claro :P )

Haddd

 Necesitas el SDK de DX9, a no ser que Loover lo haya pensado de forma que no sea necesario, pero vamos, eso sería hacer un Wrapper de todo DX.

Loover

 Vaya, pues va a ser que si es necesaria la SDK, he usado LPDIRECT3D9 y IDirect3DDevice9 en Render.h para la función de inicialización a partir de los dos punteros de direct3d.

¿Se podría evitar esto de alguna manera?

Supongo que cuando separe el render en un .dll ya no hará falta tener la SDK, ¿no?

En cuanto a lo de si sirve devc++, en principio sí, pero no he preparado los ejemplos para ello. Puede que las rutas cambien o alguna historia así. Es algo que tengo que mirar, lo siento.

De momento, a no ser que veas que puedes resolver tu mismo lo de que funcione en devc++ (que igual son 4 tonterías) te recomiendo usar visual c++6
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

fiero

 Funcionará con meter d3dx9.lib, dxguid.lib y los .h de dx9, eso es alrededor de 1 MB en zip. Lo que me lleva a la pregunta de ¿es posible distribuir esos ficheros junto con una libreria?. Conociendo a Micro$oft seguramente es del todo ilegal y tendrás que poner en la web: "Descargate el SDK de 120 MB si quieres que te funcione"...

saludos

EDITO: Si metes la parte de render de DX9 en una dll ya no va a pedir nada porque el código estará en la dll y no en los lib del sdk
www.videopanoramas.com Videopanoramas 3D player

StraT

 Tenia entendido que dev c++ usaba .a y no .lib...

Quizas sea eso.

Saludos
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

raistlin

 no se pueden incluir ficheros del SDK de microsoft en ningun producto por separado
Intento que los novatos entiendan como funciona el mundo.

Loover

 Pues vaya faena. Intentaré sacar el sistema de plugin-render en la siguiente versión en cuanto pueda, para evitar que la gente que use LooverLib tenga que bajarse toda la SDK. Y para cada ejemplo pondré también un fichero de proyecto de devc++

Así que de momento, para la persona que hizo la pregunta inicial:

- Sí, se necesita la SDK de d3d9
- Con Devc++ no debería haber problema, pero no se ha probado. Si puedes, utiliza Visual c++6

En la próxima versión:

- El render de D3d9 estará en una dll, ya no hará falta la SDK
- Incluiré un fichero de proyecto devc++ en cada ejemplo

Disculpen las molestias!
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

TheAzazel

 Loover, si consigues que tu libreria compilada con visual C se puede utilizar desde DevC++... dime como lo has hecho pq me stoy volviendo loco jeje. Y la opcion de compilar toda la libreria para DevC++ no me hace nada...pq entonces ya empieza el lio...varias DLL para win32 una para vc, otra para gcc, otra para x....

ya me contaras como lo solucionaste

Loover

 Pues aún no me he puesto con eso, pero es lo que sospechaba. Que son otro tipo de dll que no van a funcionar entre compiladores, ¿verdad?

IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

TheAzazel

 Pues si, basicamente se reduce a eso.... una DLL para utilizar VC y otra para mingw.
Hasta donde he llegado se podria hacer un apano pero es harto tedioso y  si no funciona...tiempo perdido. Nada, de momento dejare la DLL para utilizar win32 con los visualstudio's y una .so para Linux con gnu c y listo. Tu como das el codigo fuente..no deberia preocuparte por estas cosas...q cada uno recompile todo para su compi :), solo tendras q asegurarte q compila.
un saludo

Loover

 Lo que si me molesta mucho es que el usuario necesite la SDK enterita de Direct3d 9. ¿Aparte de la solución de meter los métodos en una dll (a modo de wrapper de las funciones de D3d que necesite) que funcione como renderer y cargarla como un plugin  se os ocurren otras cosas?

IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

KACHORRO

 Yo tengo el DirectX 9 SDK

He incluido en mi programa:

Citar
#include ".\\libheaders\\loover.h"

y he añadido la lib al proyecto

ahora bien, el proceso de compilado lo hace correctamente, pero el de linkado me da los siguientes errores:

Citar
narcolib.obj : error LNK2005: "bool __cdecl ZisLess(class LOV_Entity2d *,class LOV_Entity2d *)" (?ZisLess@@YA_NPAVLOV_Entity2d@@0@Z) already defined in isometric.obj

surface.obj : error LNK2005: "bool __cdecl ZisLess(class LOV_Entity2d *,class LOV_Entity2d *)" (?ZisLess@@YA_NPAVLOV_Entity2d@@0@Z) already defined in isometric.obj

narcolib.obj : warning LNK4006: "bool __cdecl ZisLess(class LOV_Entity2d *,class LOV_Entity2d *)" (?ZisLess@@YA_NPAVLOV_Entity2d@@0@Z) already defined in isometric.obj; second definition ignored

surface.obj : warning LNK4006: "bool __cdecl ZisLess(class LOV_Entity2d *,class LOV_Entity2d *)" (?ZisLess@@YA_NPAVLOV_Entity2d@@0@Z) already defined in isometric.obj; second definition ignored
   Creating library Release/surface.lib and object Release/surface.exp

Release/surface.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

surface.exe - 3 error(s), 2 warning(s)

¿Alguna sugerencia?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.