Problema compilar Blender
Buenas, a ver alguna alma caritativa me podría ayudar, estoy intentando compilar Blender des de SVN y lo he probado como 6 veces y no hay forma.
Lo estoy haciendo con MSVC express y cmake y me peta al linkar, parece que es algo del sonido y del OpenAL ¿no?
Alguna idea de porque me está pentando?
Os lo agradecería mucho.
Este es el output del MSVC express.
Código:
17>------ Build started: Project: Blender, configuration: reléase Windows 32 -
17>compiling.
17>creator, c.
17>linking.
17> creating library c:\blender_source\make\bin\release\blender, lib and object c:\blender_source\make\bin\release\blender, exp.
17>libjpeg, lib(jerror, o) : warning lnk4217: locally defined symbol __iob imported in function _output_message.
17>libpng_st, lib(pngerror, o) : warning lnk4049: locally defined symbol __iob imported.
17>libpng_st, lib(pngwutil, o) : warning lnk4049: locally defined symbol __iob imported.
17>libpng_st, lib(pngrutil, o) : warning lnk4049: locally defined symbol __iob imported.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _avcódec_open referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _avcódec_find_decoder referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _dump_format referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _av_close_input_file referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _av_find_stream_información referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _av_open_input_file referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _do_init_fmpeg referenced in function _sound_open_hdaudio.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _avcódec_flush_buffers referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _av_sek_frame referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _avcódec_decode_audio referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _av_read_frame referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _audio_resample referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _audio_resample_init referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _audio_resample_close referenced in function _sound_hdaudio_extract_small_block.
17>src, lib(hddaudio, obj) : error lnk2019: unresolved external symbol _avcódec_close referenced in function _sound_close_hdaudio.
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _algensources referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alcgeterror referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alisbuffer referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _algenbuffers referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alcmakecontextcurrent referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alccreatecontext referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alcopendevice referenced in function public: __thiscall snd_openaldevice: nd_openaldevice (Void) (¿0snd_openaldevice@@qae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alutunloadwav referenced in function public: virtual class snd_waveslot * __thiscall snd_openaldevice:loadsample (class str_string const &, oid *, int) (¿loadsample@snd_openaldevice@@uaepavsnd_waveslot@@abvstr_string@@paxh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alutloadwavfile referenced in function public: virtual class snd_waveslot * __thiscall snd_openaldevice:loadsample (class str_string const &, oid *, int) (¿loadsample@snd_openaldevice@@uaepavsnd_waveslot@@abvstr_string@@paxh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _albufferdata referenced in function public: virtual class snd_waveslot * __thiscall snd_openaldevice:loadsample (class str_string const &, oid *, int) (¿loadsample@snd_openaldevice@@uaepavsnd_waveslot@@abvstr_string@@paxh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alutloadwavmemory referenced in function public: virtual class snd_waveslot * __thiscall snd_openaldevice:loadsample (class str_string const &, oid *, int) (¿loadsample@snd_openaldevice@@uaepavsnd_waveslot@@abvstr_string@@paxh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _algeterror referenced in function public: virtual class snd_waveslot * __thiscall snd_openaldevice:loadsample (class str_string const &, oid *, int) (¿loadsample@snd_openaldevice@@uaepavsnd_waveslot@@abvstr_string@@paxh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _aldopplervelocity referenced in function public: virtual Void __thiscall snd_openaldevice: etdopplervelocity(double)const (¿setdopplervelocity@snd_openaldevice@@ubexn@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _aldopplerfactor referenced in function public: virtual Void __thiscall snd_openaldevice: etdopplerfactor(double)const (¿setdopplerfactor@snd_openaldevice@@ubexn@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _allistenerf referenced in function public: virtual Void __thiscall snd_openaldevice: etlistenergain(float)const (¿setlistenergain@snd_openaldevice@@ubexm@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _allistenerfv referenced in function public: virtual Void __thiscall snd_openaldevice:initlistener(Void) (¿initlistener@snd_openaldevice@@uaexxz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcei referenced in function public: virtual Void __thiscall snd_openaldevice: etobjectbuffer(int, unsigned int) (¿setobjectbuffer@snd_openaldevice@@uaexhi@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _algetsourceiv referenced in function public: virtual int __thiscall snd_openaldevice:getplaystate (int) (¿getplaystate@snd_openaldevice@@uaeh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourceplay referenced in function public: virtual Void __thiscall snd_openaldevice:playobject(int) (¿playobject@snd_openaldevice@@uaexh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcestop referenced in function public: virtual Void __thiscall snd_openaldevice: topobject(int)const (¿stopobject@snd_openaldevice@@ubexh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcef referenced in function public: virtual Void __thiscall snd_openaldevice: topobject(int)const (¿stopobject@snd_openaldevice@@ubexh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcefv referenced in function public: virtual Void __thiscall snd_openaldevice: topobject(int)const (¿stopobject@snd_openaldevice@@ubexh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcestopv referenced in function public: virtual Void __thiscall snd_openaldevice: topallobjects(Void) (¿stopallobjects@snd_openaldevice@@uaexxz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alsourcepause referenced in function public: virtual Void __thiscall snd_openaldevice:pauseobject(int)const (¿pauseobject@snd_openaldevice@@ubexh@z)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alcclosedevice referenced in function public: virtual __thiscall snd_openaldevice:~snd_openaldevice (Void) (¿1snd_openaldevice@@uae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _alcdestroycontext referenced in function public: virtual __thiscall snd_openaldevice:~snd_openaldevice (Void) (¿1snd_openaldevice@@uae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _aldeletebuffers referenced in function public: virtual __thiscall snd_openaldevice:~snd_openaldevice (Void) (¿1snd_openaldevice@@uae@xz)
17>bf_soundsystem, lib(snd_openaldevice, obj) : error lnk2019: unresolved external symbol _aldeletesources referenced in function public: virtual __thiscall snd_openaldevice:~snd_openaldevice (Void) (¿1snd_openaldevice@@uae@xz)
17>c:\blender_source\make\bin\release\blender, exe : fatal error lnk1120: 43 unresolved externals.
17>build log was saved at file://c:\blender_source\make\source\creator\blender, dir\release\buildlog.htm.
17>blender - 44 error(s), 4 warning(s)
18>------ Skipped build: Project: all_build, configuration: reléase Windows 32 -
18>Project not selected todo build for this solution configuration.
========== build: 16 succeded, 1 failed, 18 up-to-date, 1 Skipped ==========
Problema compilar Blender
Cita:
Lo estoy haciendo con MSVC express y cmake y me peta al linkar. Parece que es algo del sonido y del OpenAL ¿no?
Pues sí, el enlazador no encuentra ni OpenAL ni FFMpeg. Tienes que verificar en el cmake que realmente tiene la ruta hacia esas librerías asignada y que realmente las tengas en el disco duro.
Problema compilar Blender
Esto si no es mucho pedir. Como lo hago.
Problema compilar Blender
Ya me gustaría a mí compilar ya, suerte.
Problema compilar Blender
Acabo de instalar el OpenAL para Windows, pero no encuentro el FFMpeg para instalar, alguna idea? Gracias. Leader, todo es meterse.
Problema compilar Blender
Cita:
Esto si no es mucho pedir. Como lo hago.
Has dicho que has usado cmake, por lo que al principio de todo habrás ejecutado un menú (el del programa cmake) en el que hay bastantes opciones de compilación, entre ellas las localizaciones de las librerías que vayas a usar. Si cmake no ha sido capaz de localizarlas por sí mismo, te pondrá notfound. Tienes que hacer click en esa opción y apuntar a la ruta donde se encuentren las librerías en cuestión, es decir, los ficheros.lib de OpenAL y FFMpeg, respectivamente. Después el cmake te genera un fichero de proyecto sln que es el que abres con el VC++.
Si no tienes esas librerías en tu disco duro, tendrás que bajarlas precompiladas de algún sitio, como OpenAL y fmpeg. Por supuesto que se podrían compilar desde las fuentes, pero si ya tenemos el trabajo hecho, para que reinventar la rueda.
Edito: aquí unoficial FFMpeg Windows 32 builds hay una página con unas compilaciones no oficiales de FFMpeg para Windows. Las encuentras buscando por FFMpeg Windows 32.
Edito2: acabo de ver que las fuentes de FFMpeg vienen ya con las de Blender (directorio extern/fmpeg), por lo que debería de compilarse todo a la vez. ¿no será que estuviste usando los ficheros de proyecto que venían con Blender en vez de generarlos con cmake?
Problema compilar Blender
Esto, esta opción que dices de la localización de las librerías en el cmake no lo veo la verdad. Gracias por el enlace azdo.
Problema compilar Blender
Ahora el único error que me sale es este.
error lnk2019: unresolved external symbol _do_init_fmpeg referenced in function _sound_open_hdaudio.
Esto es del fmpg?
Problema compilar Blender
Cita:
Esto, esta opción que dices de la localización de las librerías en el cmake no lo veo la verdad.
En el menú de cmake hay dos opciones, openal_include_dir y openal_library. También es verdad que para ello, la opción with_openal tiene que estar activada.
Cita:
Ahora el único error que me sale es este.
error lnk2019: unresolved external symbol _do_init_fmpeg referenced in function _sound_open_hdaudio.
Esto es del fmpg?
No lo creo.
Te propongo empezar de cero:
1- Descomprimir las fuentes de Blender en un directorio.
2- Hacer otro directorio aparte fuera de las fuentes de Blender, que llamaremos compilación.
3- Conocer la localización de los ficheros.h y los.lib de OpenAL en tu disco duro.
4- Ejecutar cmake con el fichero cmakelists, txt que trae Blender, pero hacer que los resultados de cmake se escriban en el fichero compilación que acabamos de crear. Yo no tengo el cmake de Windows aquí delante porque estoy en Linux, pero me imagino que pondrá algo de build directory o similares.
5- Activar las opciones with_fmpeg y with_openal.
6- Especificar la ubicación de los *.h de OpenAL con openal_include_dir y la ruta del.lib de OpenAL con openal_library. Puede que estén en opciones avanzadas de cmake.
7- Comenzar el proceso de configuración de cmake.
8- Abrir el fichero.sln que habrá dejado cmake en el directorio compilación.
9- Compilar.
1 Archivos adjunto(s)
Problema compilar Blender
A mi lo del openal_include_dir y openal_library en el cmake no me sale, será que la versión Windows es diferente? Adjunto una captura del cmake como lo tengo, gracias por la ayuda.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=67876
Problema compilar Blender
Por cierto, me bajo las fuentes des de SVN y hoy he hecho un SVN update para pillar lo ultimo, se supone que funciona y es compilable la versión que hay en SVN ¿no?
Problema compilar Blender
Cita:
A mi lo del openal_include_dir y openal_library en el cmake no me sale. Será que la versión Windows es diferente?
Adjunto una captura del cmake como lo tengo. Gracias por la ayuda.
Raro, raro, entonces lo que se puede hacer es añadir directamente esas rutas al proyecto de VC++. En el VC++, vete a propiedades del proyecto, y en linker o enlazador, sección input o así, busca algo que se parezca a rutas adicionales de librerías y la ruta que apunte al.lib.
Cita:
Por cierto, me bajo las fuentes des de SVN y hoy he hecho un SVN update para pillar lo ultimo.
Se supone que funciona y es compilable la versión que hay en SVN ¿no?
En la mayoría de los casos sí, aunque no hay garantías.
1 Archivos adjunto(s)
Problema compilar Blender
Supongo que estarás utilizando el método explicado en los tutoriales de geneome, aquí te dejo otra forma, explicada en castellano:
Tutorial: compilar Blender en Windows.
Adjunto cómodo pdf, según la página el tutorial permite ser compartido bajo licencia Creative Commons.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=67878
Problema compilar Blender
Brutal Shazam. Con scons compila perfectamente. Muchas gracias a los 2 de verdad. Por cierto, con este tutorial se compila con todo? Fmpeg, engine, etc?