En Eclipse hay una opción para especificar pre procesamiento define (macros #ifdef) a un proyecto utilizando la opción Símbolos en Rutas y Símbolos. Esto ayuda a la indexación efectiva de código que es multiplataforma. ¿Hay alguna opción para proporcionar estos en el creador de Qt?Cómo agregar definiciones de procesamiento previo (macros) al creador de qt?
Respuesta
Desde el QT Documentation:
El distribuidor determina se especifican en el archivo .config. El archivo .config es un archivo normal de C++ , antepuesto a todos sus archivos fuente cuando son analizados. utilizar sólo el archivo .config añadir líneas como en el ejemplo a continuación:
#define NAME value
Es decir, si importa un proyecto llamado MyProject, a continuación, las definiciones pre-procesador deben especificarse en MyProject.config
Para mis proyectos, provoca que el indexador reconozca este proyecto de definición de ancho y cambió el autocompletado para reflejar esto.
Puede definir algunos PREPROCESADOR en la configuración del Proyecto en QtCreator. No tengo QtCreator aquí, pero recuerdo que hay una pestaña para la configuración del proyecto.
no pude encontrar por ejemplo en el entorno Configuración del proyecto uration. – Bharathwaaj
El nombre de la pestaña es "Proyectos". Aquí puede hacer una compilación personalizada agregando su preprocesador. Defina –
No uso el creador de qt para la compilación. Lo uso para indexar – Bharathwaaj
Depende :-)
La siguiente es suponiendo que está utilizando proyectos basados qmake:
En primer lugar se puede añadir DEFINES += SOME_DEFINE=value
en su archivo .pro. Eso se recoge dentro del creador y cuando se construye en la línea de comando y también debe aparecer cuando se crea un proyecto MSVC o XCode desde el archivo .pro.
Luego puede agregar DEFINES += SOME_DEFINE=value
a la llamada qmake que Qt Creator emitirá al configurar el proyecto. Eso sucede en el modo de proyecto, configuraciones de compilación, pasos de QMake.
Finalmente, puede ponergravámenes de valor en un archivo de encabezado e incluir eso. Eso funciona para todo tipo de proyectos :-)
No, yo no uso qtcreator para construir. No lo quiero solo por su poderosa indexación. – Bharathwaaj
Y mi proyecto no está basado en qmake. – Bharathwaaj
+1 Puede que esto no ayude al póster original, pero este es el éxito principal de "qtcreator define" en google y muchos de nosotros estamos usando qmake y compilando en qtcreator. ¡Gracias! – sage
Quería especificar una cadena #define en el archivo .pro, pero mi código terminó con el contenido de la cadena sin las comillas. Tuve que escapar de las citas, y luego escapar de las escapatorias para obtener un par de citas que duraran todo el camino hasta mi código. Esto es porque qmake quita un conjunto de escapes y algunas comillas, luego la línea de comando quita el resto. Esto funcionó para mí:
DEFINES += "VERSION=\"\\\"0.1.0\\\"\""
En Windows, esta cadena de versión a continuación, se puede utilizar en el archivo .rc para crear la materia versión de Windows, donde lo quiere y así como en el código de un menú "Acerca de".
Tuve un problema similar. En bash en la línea de comandos, esto funcionó para mí: 'qmake DEFINES + =" BUILD_DATE = '\' \ "17 de agosto de 2016 \" \ '' "' – cgmb
creo que las respuestas iniciales son buenas, pero que requieren que se administra la configuración manualmente mientras que hay maneras para que el IDE manejar esto para usted automáticamente en función de si tiene una versión o configuración de depuración seleccionada.
Este bit puede ser redundante, pero tenga en cuenta que esto funcionará para usted solo si está utilizando el IDE para el edificio.Obviamente, si este no es el caso, necesitará una solución diferente.
Pasos
Dado que una imagen vale más que mil palabras, aquí está un ejemplo de cómo se defina una macro de depuración para su versión de depuración utilizando Qt Creator 4.3.1:
- Asegúrate de que tienes tu Configuración de depuración seleccionada;
- Ir a la sección deProyectos en el menú de la izquierda;
- Ir a la sección deConstruir
- Bajo etapas de la generación, busque los argumentos adicionales cuadro de entrada;
- Introduzca sus definiciones de macro (por ejemplo
DEBUG
para sus#ifdef DEBUG
s en el código; en mi caso es__CTS_DEBUG__
)
La macro sólo ahora se define cuando se está utilizando su configuración de depuración ; cuando eliges tu Release config (ver paso 1), quedará sin definir automáticamente y tu código de depuración compilado condicionalmente se eliminará, como se muestra en las imágenes a continuación, que es justo lo que siempre quisiste.
Resultados
Con la depuración de configuración seleccionados
Con la liberación configuración seleccionada:
¡Esto es genial! ¡Gracias! – KGCybeX
- 1. vinculando el marco de Mac al creador de qt
- 2. Creador de qt depurar lento
- 3. Creador de Qt, mensaje de error
- 4. C++ Qt Múltiples definiciones
- 5. Creador de Qt en Emacs keybind
- 6. ¿Cómo se evalúan las definiciones de macros recursivas
- 7. ¿Cómo agregar macros al proyecto de Visual Studio?
- 8. Comentarios de C++ para funciones en el creador de Qt
- 9. ¿Macros recomendadas para agregar funcionalidad al constructor defrecord de Clojure?
- 10. Creador de Qt: "XYZ no nombra un tipo"
- 11. Agregar biblioteca externa al proyecto de Qt Creator
- 12. cómo reemplazar las macros de látex con sus definiciones (usando látex)
- 13. ¿Cómo envuelvo la fusión del archivo git con el procesamiento previo y posterior?
- 14. cómo agregar instrucciones de procesamiento XML durante JAXB Mariscal
- 15. Instalador WIX: Agregar POS como un requisito previo
- 16. Creador de consultas SQL
- 17. Cómo habilitar la finalización automática en el creador de Qt en el modo Fakevim
- 18. ficha de C Constantes/Macros
- 19. ¿El creador de Qt enlaza por defecto de forma estática o dinámica sus bibliotecas?
- 20. C/C++ geniales definiciones de macro?
- 21. macros de asciidoc
- 22. Cómo agregar pestañas a PowerPoint 2010 que llaman a macros
- 23. CMake + Qt = definiciones Qt talladas en piedra (también conocido como -DQT _...)?
- 24. Deshabilitar la creación automática del creador de qt cuando se depura
- 25. cómo agregar la regla de "advertencias como error" al archivo Qt .pro?
- 26. QListWidget ¿Agregar elementos personalizados en Qt?
- 27. Cmake con Qt Creator
- 28. Creador de consultas de Drupal
- 29. cómo agregar zlib a una instalación de qt existente
- 30. preprocesador GCC macro: pegar X y X no da un procesamiento previo válida símbolo
No he intentado esto. Ya no trabajo en Qt. Pero creo que por tu respuesta esto podría ser correcto. Por lo tanto, aceptarlo a partir de ahora para que otros lo usen. – Bharathwaaj
Funciona, y es apropiado. –
Esto funciona cuando hago lo que dicen los documentos y "Solo use el archivo .config para agregar líneas como en el ejemplo siguiente". Esperaba que "El archivo .config es un archivo normal de C++" significaba que también podía usar # ifdef/# else/# endif allí, pero daba resultados extraños. Se supone que eso funciona? – anr78