open - qt full
INCLUDEPATH en el archivo de proyecto qmake no funciona (10)
aquí está uno de mis archivos pro:
# Blah Application
TEMPLATE = app
CONFIG += qt console staticlib debug_and_release
QT -= gui
QT += network sql xml
TARGET = blah
CONFIG(debug, debug|release){
DESTDIR = debug
LIBS += -L../../../lib/core/debug -lcore
} else {
DESTDIR = release
LIBS += -L../../../lib/core/release -lcore
}
DEPENDPATH += . ../../lib ../../../lib/core
INCLUDEPATH += . ../../lib ../../../lib/core
# Library files
HEADERS += mtBlahRTP.h
SOURCES += mtBlahRTP.cpp
# Input
HEADERS +=
SOURCES += main.cpp
La ruta de inclusión incluye el directorio RELATIVO de mis archivos lib. mtBlahRTP.h y mtBlahRTP.cpp están en ../../lib
Tengo un problema con incluir en un proyecto qmake. En mi archivo .pro tengo:
INCLUDEPATH += "C:/OpenCV/build/include"
y en mi cpp:
#include <opencv/cv.h>
El compilador indica un error:
No se puede abrir el archivo de inclusión: ''opencv / cv.h'': No existe ningún archivo o directorio
pero si escribo esto en mi cpp:
#include "C:/OpenCV/build/include/opencv/cv.h"
¡funciona!
Construyo el proyecto desde Qt Creator. ¿Qué estoy haciendo mal?
Debe ejecutar qmake (compilación-> ejecutar qhacer) para validar los cambios en el archivo pro. Creador de Qt Cómo agregar una biblioteca externa (aún: No se puede abrir el archivo de inclusión: ''GL / glew.h'')
Me encontré con un problema similar y lo que encontré es que el QtCreator IDE no vuelve a leer los resultados de qmake y actualiza el mensaje "No se puede abrir". Debe cerrar el archivo ofensivo y volver a abrirlo; luego verá que ya no muestra el error.
Tenía que hacer dos pasos: (re) ejecutar qmake y reconstruir todo el proyecto, solo entonces se consideró correctamente la configuración INCLUDEPATH. (Con QtCreator 3.5 y 3.6 (Qt 5.5 y Qt 5.6) en Windows).
Estaba obteniendo el error:
canserialcomm.o: In function `CanSerialComm::CanSerialComm()'':
canserialcomm.cpp:(.text+0xc1): undefined reference to `vtable for CanSerialComm''
Resulta que la causa fue que no fue capaz de encontrar canserialcomm.h
donde se declara ese constructor. Esto fue a pesar de tener INCLUDEPATH
en el archivo del proyecto apuntando al directorio que contiene ese archivo de encabezado:
INCLUDEPATH += . /
..
Lo que tuve que hacer para solucionar esto es especificar explícitamente el archivo de encabezado; Yo añadí:
HEADER += ../canserialcomm.h
Debería usar barras diagonales inversas dobles en Windows para creador de qt con msvc. de esta manera: INCLUDEPATH + = C: // libcurl // libcurl-vc-x64-release-dll-ipv6-sspi-winssl // include
Esto arreglará el problema.
En Windows debe eliminar el -I antes de cada directorio que se agrega a la variable INCLUDEPATH. Por ejemplo: en windows:
INCLUDEPATH += "C:/lib/boost_1_61_0" (back-slash)
En linux y mac:
INCLUDEPATH += -I"$$(HOME)/lib/boost_1_61_0" (note the -I and forward-slash)
No estoy seguro de si depende de la versión diferente de qmake o no. Pero después de terminar el comando qmake, verifico el Makefile y el doble, yo soy el problema.
Tienes que hacer varias cosas. Fist, en el archivo .pro, necesita las comillas dos barras invertidas a la vez, como esta:
INCLUDEPATH += "C://OpenCV//build//include//opencv//cv.h"
También necesita una barra frontal en el #include
en su archivo .cpp como este:
#include <opencv/cv.h>
Cuando hayas hecho esto, elimina la carpeta de compilación. Esta es la carpeta con un nombre muy complicado del tipo build-untitled-Desktop_Qt_5_7_0_MSVC2015_32bit-Release
. Luego, en el menú Generar, presione "Ejecutar qhacer". Cuando haya hecho todo esto, debería compilar bien.
Tengo la misma pregunta, antes de construir o ejecutar, debe qmake ( Build => qmake ).
Mis configuraciones para INCLUDEPATH :
INCLUDEPATH+=D:/opencv/opencv/build/include
INCLUDEPATH+=D:/opencv/opencv/build/include/opencv
INCLUDEPATH+=D:/opencv/opencv/build/include/opencv2
Su problema puede estar relacionado con el hecho de que tener barras diagonales inversas en directivas #include
desnudas es un comportamiento indefinido .
Haz lo siguiente.
Reemplaza tu incluido con
#include <opencv/cv.h>
Tenga en cuenta la barra diagonal!
Elimine el directorio de compilación shadow que Qt Creator ha creado para usted. Lo encontrará sobre el directorio del proyecto, su nombre comienza con
build-
.Reconstruye el proyecto.
Tenga en cuenta que esto se encarga de volver a ejecutar qmake.