Qt ile GUI oluşturan ve CMake kullanarak makefiles oluşturma bir OpenCV uygulama yazmaya çalışıyorum.CMake
This file was generated using the moc from 5.2.1. It cannot be used with the include files from this version of Qt. (The moc has changed too much.)
Tamam: Ben sorun ben make
komutu çalıştırmak çalıştığınızda hata alıyorum olmasıdır. Bu yüzden moc'u qt4 yerine qt4'ten kullanmaya çalışmalıyım (hem qt4 hem de qt5 yüklü). Tabii ki,ve /usr/bin/moc
'a sahip olduğumdan, tek yapmam gereken şey invoke sudo update-alternatives --config moc
, ama tek alacağım update-alternatives: error: no alternatives for moc
.
cmake_minimum_required(VERSION 2.8.9)
project (Vigil)
include_directories(
build
src
inc
uis
)
######################### Configure OpenCV inclusion #########################
FIND_PATH(CV_INCLUDE_DIR cv.h
/usr/include/opencv
)
MESSAGE(STATUS "OpenCV: CV Path : " ${CV_INCLUDE_DIR})
FIND_PATH(CVAUX_INCLUDE_DIR cvaux.h
/usr/include/opencv
/usr/local/include/opencv
/usr/local/include/opencv/cvaux/include
/usr/local/include/opencv/include
)
MESSAGE(STATUS "OpenCV: CVAux Path : " ${CXCORE_INCLUDE_DIR})
FIND_PATH(CXCORE_INCLUDE_DIR cxcore.h
/usr/include/opencv
/usr/local/include/opencv
/usr/local/include/opencv/cxcore/include
)
MESSAGE(STATUS "OpenCV: CXCore Path : " ${CVAUX_INCLUDE_DIR})
FIND_PATH(HIGHGUI_INCLUDE_DIR highgui.h
/usr/include/opencv
/usr/local/include/opencv/otherlibs/highgui
/opt/local/include/opencv
/usr/local/include/opencv
)
MESSAGE(STATUS "OpenCV: HighGUI Path : " ${HIGHGUI_INCLUDE_DIR})
FIND_LIBRARY(CV_LIB NAMES opencv_imgproc PATHS
/usr/lib
/usr/local/lib
/usr/lib64
/usr/local/lib64
)
MESSAGE(STATUS "OpenCV: CV Lib: " ${CV_LIB})
FIND_LIBRARY(CXCORE_LIB NAMES opencv_core PATHS
/usr/lib
/usr/local/lib
/usr/lib64
)
MESSAGE(STATUS "OpenCV: CXCore Lib: " ${CXCORE_LIB})
FIND_LIBRARY(HIGHGUI_LIB NAMES opencv_highgui PATHS
/usr/lib
/usr/local/lib
/usr/lib64
/usr/local/lib64
)
MESSAGE(STATUS "OpenCV: HighGUI Lib: " ${HIGHGUI_LIB})
INCLUDE_DIRECTORIES(
${HIGHGUI_INCLUDE_DIR}
${OPENCV_INCLUDE_DIR}
${CXCORE_INCLUDE_DIR}
${CVAUX_INCLUDE_DIR}
)
######################### Configure QT inclusion #########################
FIND_PACKAGE(Qt5Widgets)
FIND_PACKAGE(Qt4 REQUIRED)
include_directories(${QT_INCLUDES})
IF(QT4_FOUND)
MESSAGE(STATUS "QT found : YES")
ELSE(QT4_FOUND)
MESSAGE(FATAL_ERROR
"Cannot build without Qt4. Please set Qt4_DIR.")
ENDIF(QT4_FOUND)
######################### Add sources, headers and uis #########################
set(SOURCES ${SOURCES}
main.cpp
VigilWidget.cpp
)
SET(HEADERS ${HEADERS}
VigilWidget.h
)
SET(UI_FILES
bugView.ui
)
######################### Run UIC on .ui files #########################
QT4_WRAP_UI(UI_HDRS ${UI_FILES})
MESSAGE(STATUS "UI_HEADERS: " ${UI_HDRS})
# and finally this will run moc:
#QT4_AUTOMOC(${HEADERS})
QT4_WRAP_CPP(MOC_HEADERS ${HEADERS})
######################### #########################
ADD_EXECUTABLE(Vigil ${UI_HDRS} ${SOURCES} ${HEADERS} ${QtApp_RCC_SRCS} ${MOC_HEADERS})
Kaynağım ve başlık dosyaları şunlardır: Hmmm ...
nedenle, sorunun ya qt ya benimCMakeLists.txt
sürümüyle olduğunu düşünüyorum, işte bunun için kullanılan koddur Şu an çok boş ama onları da göndereceğim. Kim bilir, belki de hata var.
main.cpp:
#include <iostream>
#include "VigilWidget.h"
//#include <QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
std::cout << "Testing";
VigilWidget vigil;
vigil.show();
}
VigilWidget.cpp:
#include "VigilWidget.h"
VigilWidget::VigilWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
VigilWidget.h: Neyse
#ifndef _BGSUBTRACT_H_
#define _BGSUBTRACT_H_
#include "ui_bugView.h"
//#include <QObject>
class VigilWidget : public QWidget{
Q_OBJECT
public:
private slots:
signals:
private slots:
private:
Ui::bugView ui;
};
#endif
, iki gün bu almanın en iyi parçası geçirdim uzak ve gerçekten bazı yardım gerçekten takdir ediyorum! Çok teşekkürler! Qt5 için
'FIND_PACKAGE (Qt5Widgets) Qt4 veya Qt5 kullanıyor musunuz? – Ilya
Evet ... bu gereksiz. Ancak, bu satırı kaldırdıktan sonra hala aynı sorunu yaşıyorum. –
Peki hepsini qt5 paketlemek için değiştirdim - bu doğru olmalı? ** Bulunan paket yapılandırma dosyası:: /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake ama YANLIŞ böylece pakete Qt5_FOUND set "Qt5" Şimdi bana hata mesajı verir FOUND olarak kabul edilir. Paket tarafından verilen neden: Qt5 paketi en az bir bileşen gerektirir ** –