Me gustaría incluir libQtGui.so.4 libQtNetwork.so.4 y libQtCore.so.4 en el mismo directorio donde reside mi aplicación. ¿Cómo haré que Qt comprenda esto? El objetivo es tener una aplicación independiente que use bibliotecas compartidas¿Cómo puedo establecer dónde una aplicación Qt encuentra un módulo Qt?
Respuesta
La configuración de la variable de entorno LD_LIBRARY_PATH es una opción. Por ejemplo:
export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH
Otra opción es establecer el RPATH de su aplicación Qt durante la vinculación. Establecer el RPATH en el valor "$ ORIGIN" hará que el enlazador dinámico busque en el mismo directorio que su aplicación Qt en tiempo de ejecución. Por ejemplo, si se usa qmake, añadir el siguiente fragmento de su archivo de proyecto:
unix:!mac{
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
QMAKE_RPATH=
}
Esto establecerá el rPath a "$ ORIGEN: $ ORIGEN/lib: $ ORIGIN/libs", lo que significa que el enlazador dinámico primero mire en la ubicación de su aplicación Qt, luego en un subdirectorio lib en su ubicación, luego en un subdirectorio libs en su ubicación, y finalmente en cualquier ubicación definida por el sistema.
parece que no funciona. –
Aquí está la salida de compilación: "g ++: opción no reconocida" -wl, - rpath = $ ORIGIN '"" g ++: opción no reconocida' -wl, - rpath = $ ORIGIN/lib '"" g ++: opción no reconocida' - wl, - rpath = $ ORIGIN/libs '" –
eliminó los archivos manualmente en el Makefile directamente, presionó build all again luego pasó ... ahora para probarlo. –
UNIX/Linux buscará LD_LIBRARY_PATH (si está configurado) primero antes de buscar en las bibliotecas estándar del sistema. Entonces, si estableces eso, puedes anularlo. Al igual que establecer la RUTA en Windows. Mismo efecto. El orden importa
Puede agregar ./ o. a LD_LIBRARY_PATH también.
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
Lo intenté y no funciona. Ingresé al proyecto y cambié LD_LIBRARY_PATH a. pero nada cambió cuando volví a la terminal y escribí ldd ./MyApp ... Estoy compilando desde la GUI ... ¿debería intentarlo desde la línea de comandos? –
LD_LIBRARY_PATH
y QMAKE_RPATH
nunca funcionó para mí. En cambio, establecí QMAKE_RPATHDIR
en mi archivo .pro
. Por ejemplo, después de haber construido e instalado (make install
) Qt, se ha colocado en /usr/local/Trolltech/Qt-4.8.5/lib/
. a continuación, escribo lo siguiente en mi archivo .pro
:
QMAKE_RPATHDIR += /usr/local/Trolltech/Qt-4.8.5/lib/
Nota 1: Las rutas relativas parecen no funcionar. Prefiere caminos absolutos.
Nota 2: Cuando a continuación make
, se puede ver que la siguiente opción es dado al enlazador: -Wl,-rpath,/usr/local/Trolltech/Qt-4.8.5/lib/
Nota 3: Para asegurarse de que los enlaces binarios de forma dinámica a la biblioteca correcta, se puede visualizar el versión de Qt en tiempo de ejecución entregada por qVersion()
.
- 1. Minimizar una aplicación Qt
- 2. ¿Cómo establecer una ruta relativa para Qt dlls cuando se libera un proyecto Qt?
- 3. ¿Cómo instalar una aplicación Qt en un sistema de clientes?
- 4. ¿Cómo implementar una aplicación Qt en Windows?
- 5. ¿Cómo puedo enviar un fax con mi aplicación Qt?
- 6. ¿Dónde encontrar versiones anteriores de QT (por ejemplo, QT 4.6)?
- 7. ¿Cómo puedo recortar una imagen en Qt?
- 8. ¿Cómo creo un paquete 'instalar' para una aplicación Qt?
- 9. ¿Cómo establecer fácilmente una conexión SSH en Qt?
- 10. ¿Cómo crear un archivo ejecutable para una aplicación Qt?
- 11. ¿Cómo incluyo un archivo de texto en una aplicación qt?
- 12. Prueba con el módulo QTestLib de Qt
- 13. Recopilación multiplataforma de una aplicación Qt
- 14. aplicación C++ usando qt, cómo incluir gnuplot
- 15. ¿Cómo implementar mi aplicación usando Qt-Creator?
- 16. Aplicación Qt-Linux de arranque
- 17. ¿Puedo usar Qt sin qmake o Qt Creator?
- 18. Qt La aplicación falla espectacularmente
- 19. Establecer el foco de QLineEdit en Qt
- 20. una descripción en un exe qt archivo
- 21. qt aplicación 64 bit windows
- 22. Usando una DLL basada en Qt en una aplicación que no es Qt
- 23. ¿Cómo puedo crear una solicitud HTTP POST con Qt 4.6.1?
- 24. Qt Quick vs. Qt Widget
- 25. fecha setLastModified con Qt
- 26. ¿Cómo crear un archivo pdf desde la aplicación Qt?
- 27. Limpiar un diseño en Qt
- 28. ¿Ejecuta una aplicación Qt en un idioma diferente?
- 29. Cómo establecer la posición absoluta de los widgets en qt
- 30. Uso de los iconos estándar de Qt desde Qt Creator
También puede decidir vincular estáticamente contra las bibliotecas Qt, de esa manera no dependerá de la versión Qt local instalada (así es como Opera solía hacerlo en Linux) – sisis
Problema al enlazar estáticamente en la plataforma que estoy Despliegue encendido es que fontconfig tiene errores (red Hat 5.3 usa fontconfig 2.4.1) –
cuando trato de construir estáticamente existe una referencia indefinida a FcTypeFreeQueryFace y cuando trato de actualizar fontconfig me dice que fontconfig está actualizado ... ..bummer..then tengo que encontrar una manera de modificar los archivos Qt para compilar con una versión de fontconfig que proporciono. Puedo construir mi aplicación dinámicamente con un fontconfig que proporciono pero no estáticamente –