Problema al compilar qxmpp



  • Buenas.. ya hace unas estoy tratando de compilar QXMPP.. de momento lo e logrado compilar.. me crea un archivo llamado libqxmpp0.a qxmpp0.dll lo instalo en el sistema y todo ok.. pero.. funciona solo con la version que no genera los .EXE static.. y funciona cuando le agrego los dll faltantes.. :(

    Imagen: http://picpaste.com/111111-M6h1xfZN.png

    Ahora.. e compilado qt para que me genere los EXE staticos sin tener que estar agregando las dll.. lo cual me genera un archivo .exe de 13 MB aprox. pero.. al tratar de compilar el QXMPP me lanza error.. que falta QSSLSocket y otro montón de cosas mas.. Me gustaría saber si hay alguna forma de compilar QT statico y que me genere todos los dll para evitar este tipo de problemas.. ya e compilado cientos de veces y aun sigo con lo mismo..

    Saludos..



  • ¿De que forma estas compilando QXmpp?¿Con que opciones?



  • de la forma normal.. abro el proyecto con qt y le doy build.. y también e probado con qmake y luego make y make install .. de igual forma tambien le e pasado los parámetros correspondientes para que compile QXMPP statico pero todo sigue igual.. te dejo la url del proyecto para que vos proba y veais de lo que te hablo..

    https://github.com/qxmpp-project/qxmpp

    si logras compilar un proyecto con qxmpp sin depender de las dll me salvas la vida XD

    Salu2.



  • ¿Probaste pasandole la opción QXMPP_LIBRARY_TYPE=staticlib?

    @i686-w64-mingw32-qmake-qt5 PREFIX=/usr QXMPP_LIBRARY_TYPE=staticlib QXMPP_USE_SPEEX=1 QXMPP_USE_VPX=1 QXMPP_USE_THEORA=1@

    Probado de Arch Linux y compila sin problemas.



  • la verdad si e probado. en linux no tengo idea, pero en windows me da problema. :S me crea dll y un .a si teneis chace proba en window.



  • El .a es la librería estática, ¿De que tamaño es el archivo? a mí me da unos 40Mb con Vorbis, theora y Vpx incluidos. ¿Probaste linkearlo en tu programa?



  • si me da un aproximado de 9 MB.. de que forma tu linkeas el .a al programa? yo lo e linkeado andole click secundario agregar libreria etc etc.. agrego los headers y todo eso.. el programa funciona.. pero da problemas de dll.. q le hace falta la libreria dll de xmpp.. y para que funcione tengo q agregarlas a la carpeta :S cosa q no deberia de hacer ya que al compilar deberia de tomar la libreria y generar el .exe listo sin tener q tener q agregar dll para que funcione. :(



  • bq. de que forma tu linkeas el .a al programa?

    Agregando

    @LIBS += -L/ruta -lqxmpp@

    al archivo .pro.

    bq. el programa funciona.. pero da problemas de dll

    ¿Podrías copiar aquí los errores que te devuelve el compilador?



  • Disculpa el retraso amigo me encontraba fuera de casa.. por supuesto te dejo las imágenes con los errores y detallan dote todo..

    Esta es el error al compilar usando QT Statico (Compilado)

    !http://picpaste.com/1-ZijFvIMW.png

    Esta el la ruta del qmake estatico (Compilado)

    !http://picpaste.com/2-1NY30HfD.png

    Esta son las Carpetas (la normal al instalar QT) y la (Estatica)

    !http://picpaste.com/3-ftnyhxQ9.png

    Creo.. que al parecer dentro de la carpeta de C:\Qt\Qt5.2.1_static\bin
    Faltan muchos DLL.. Creo que es por eso que no logra compilarlo

    ya que la carpeta original de QT C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin
    tiene todas sus DLL .

    Esta imagen es de QT statico (Compilado) y dentro no se observan DLL

    !http://picpaste.com/4-wTyMNIG1.png

    Esta otra imagen Pertenece a la carpeta original de QT sin compila

    !http://picpaste.com/5-ZHlSlD2Q.png

    Ahora.. la forma en que compile QT de forma esta tica fue la siguiente:

    Edite el qmake.conf y agrege

    @DEFINES += QT_STATIC_BUILD@
    @QMAKE_LFLAGS = -static -static-libgcc@

    Agrege las iguientes rutas al path de windows:

    @PATH=C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin;C:\Qt\Qt5.2.1\Tools\mingw48_32\bin;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\Python33;C:\strawberry\perl\bin;C:\Ruby200-x64\bin;@

    Luego la forma en que realize el configure fue el siguiente:

    @configure -static -release -confirm-license -opengl desktop -opensource -platform win32-g++ -prefix C:\Qt\Qt5.2.1_static -nomake examples -nomake tests@

    luego enlace el qmake statico..

    y sigo sin poder compilar QXMPP con el QT statico

    Compile el QXMPP con QT sin usar static y creo el libqxmpp.a

    ahora al linkear un app para realizar la prueba en (ESTATICO) resulta que me da error.. Te adjunto las 2 imagenes..

    http://picpaste.com/err1-hXvg817e.png

    http://picpaste.com/err2-WGieVkQJ.png

    Alli detalle todos los errores que tengo..

    Otra cosa a resaltar es que lo compile de forma normal sin pasarles parametros al QXMPP y creo el .a y .dll
    lo probé en la versión no estática de QT y funciono de maravilla.. PEro el .exe creado es de 32K y depende de muchas DLL... cosa que no quiero.. deberia de tener un EXE completo..

    http://picpaste.com/111-HxAKdpst.png

    Ahora probé de la misma forma pero con QT estático y me da un return :S

    http://picpaste.com/22222-XmVCFzcu.png

    en verdad e probado de todo.. y sigo sin resolver este enigma..

    Salu2.



  • Vamos por partes.

    [quote author="misa3l" date="1422564943"]
    Esta es el error al compilar usando QT Statico (Compilado)

    !http://picpaste.com/1-ZijFvIMW.png
    [/quote]

    Tenes que incluir:

    @QT += network@

    en tu archivo .pro.

    [quote author="misa3l" date="1422564943"]
    Creo.. que al parecer dentro de la carpeta de C:\Qt\Qt5.2.1_static\bin
    Faltan muchos DLL.. Creo que es por eso que no logra compilarlo

    ya que la carpeta original de QT C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin
    tiene todas sus DLL .
    [/quote]

    No, aquí esta bien, pues eso es lo que quieres, una compilación sin dependencias con DLLs.

    [quote author="misa3l" date="1422564943"]
    Compile el QXMPP con QT sin usar static y creo el libqxmpp.a

    ahora al linkear un app para realizar la prueba en (ESTATICO) resulta que me da error.. Te adjunto las 2 imagenes..

    http://picpaste.com/err1-hXvg817e.png

    http://picpaste.com/err2-WGieVkQJ.png
    [/quote]

    ¿el archivo libqxmpp.a esta dentro de la ruta que indica LIB?

    Disculpa que no te pueda dar una ayuda mas específica, pero para ayudarte tendría que levantar la VM, compilar Qt estático + QXmpp, y todavía tendría que armar algún ejemplo para probar, es demasiado trabajo, y estoy un tanto ocupado en estos momentos :s



  • No hay problema amigo poco a poco se ayuda. Me urge terminar esto ya que mi tesis de universidad sera creando un proyecto con la tecnología xmpp para comunicación, pero sino logro compilar y hacer funcionar QXMPP con QT Statico tendré q inventarme algo XD.

    en mi .pro tengo

    @QT += core network xml
    QT -= gui@

    ya que qxmpp usa network y xml .

    ahora lo de la ruta del .a si amigo esta en esa ruta, al instalarlo se guarda dentro de la carpeta de lib del mingw48_32 y los header en includes.

    en C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib

    esta libqxmpp0.a y qxmpp0.dll

    Ando casi loco con esto :/

    salu2.



  • [quote author="misa3l" date="1422641054"]Me urge terminar esto ya que mi tesis de universidad sera creando un proyecto con la tecnología xmpp para comunicación, pero sino logro compilar y hacer funcionar QXMPP con QT Statico tendré q inventarme algo XD.
    [/quote]

    No desesperes, es un proyecto interesante, me consta que hay otras personas trabajando en proyectos de fin de carrera parecidos. Yo por mi parte planeo usar QXmpp para uno de mis proyectos, así que algo sé del tema.

    En última instancia puedes probar con compilación cruzada :p

    [quote author="misa3l" date="1422641054"]
    en C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib

    esta libqxmpp0.a y qxmpp0.dll
    [/quote]

    Pará, si te lo guarda como libqxmpp0.a entonces deberías probar linkeando como -lqxmpp0.



  • Amigo ya lo e probado xD

    @win32:CONFIG(release): LIBS += -LC:/Qt/Qt5.2.1/5.2.1/mingw48_32/lib/ -lqxmpp0@

    y mismo problema..



  • sin resultado.. :(


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.