将C++项目与Qt项目合并时出现的问题

Issues when merging a C++ project with a Qt project

本文关键字:项目 问题 合并 C++ Qt      更新时间:2023-10-16

这个项目是一个MVC,在View部分使用Qt(和OpenGl),在Controler部分使用Boost Graph库。

我已经在EclipseCDT上开发了模型和视图部分,并成功地编译和运行了它。视图部分是在QtCreator下开发的,窗口也成功编译运行。

但是当我在Qt项目中添加模型和控制器文件时,我遇到了一些编译问题。

我在Mac OSX Mavericks上,Boost 1.55.0,Qt 5.2.1(Qt创建者的最新版本)

以下是编译输出:

MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../../Qt/5.2.1/clang_64/mkspecs/macx-clang -I../IBirdCVGui -I</Users/thomas/Documents/workspace/interface/testsQt/IBirdCVGui/boost_1_55_0/> -I../../../../../Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5/Headers -I../../../../../Qt/5.2.1/clang_64/lib/QtWidgets.framework/Versions/5/Headers -I../../../../../Qt/5.2.1/clang_64/lib/QtGui.framework/Versions/5/Headers -I../../../../../Qt/5.2.1/clang_64/lib/QtCore.framework/Versions/5/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -F/Users/thomas/Qt/5.2.1/clang_64/lib -o main.o ../IBirdCVGui/main.cpp
/bin/sh: -I../../../../../Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5/Headers: No such   file or directory
make: *** [main.o] Error 1
14:32:02: Le processus "/usr/bin/make" s'est terminé avec le code 2. //ended with code 2
Erreur lors de la compilation/déploiement du projet IBirdCVGui (kit : Desktop Qt 5.2.1 clang 64bit) // error in compilation/deployment of project IBirdCVGui
Lors de l'exécution de l'étape "Make" //in "make" execution
14:32:02: Temps écoulé : 00:00.

我查看了文件Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5/Headers,我的ls的输出是:

(Canopy 32bit) rivesaltes:Headers thomas$ ls
5.2.1               QtOpenGL
QGLBuffer           QtOpenGLDepends
QGLColormap         QtOpenGLVersion
QGLContext          qgl.h
QGLFormat           qglbuffer.h
QGLFramebufferObject        qglcolormap.h
QGLFramebufferObjectFormat  qglframebufferobject.h
QGLFunctions            qglfunctions.h
QGLFunctionsPrivate     qglpixelbuffer.h
QGLPixelBuffer          qglshaderprogram.h
QGLShader           qtopenglglobal.h
QGLShaderProgram        qtopenglversion.h
QGLWidget

我的项目中大约有10.h文件和10.cpp文件,所以如果你想看代码,我可以发布它,但有比在这里发布更有用的东西吗。

所以我有几个问题:

  • 我是不是错过了什么大事
  • 当我试图添加一些"经典"C++代码时,为什么Qt-open-Gl会抱怨
  • boost图库是否有可能干扰Qt
  • Qt有什么我在教程中遗漏的吗

此行:

/bin/sh: -I../../../../../Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5/Headers: No such   file or directory

通常显示Makefile中有一行在错误的位置中断(可能是一个反斜杠+换行符,它们之间有一个空格)。检查生成的Makefile,你可能会发现你的问题。

我想看看的原因

/bin/sh:-I../../../../..//Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5/Headers:没有这样的文件或目录

在问自己所有其他问题之前。也许只是"../../../..///"有问题。如果我是你,我会检查的路径

../../../..//Qt/5.2.1/clang_64/lib/QtOpenGL.framework/Versions/5-Headers

首先从工作目录。

希望它能有所帮助:)