2016-01-23 22 views
0

The screen-spot of the demo project I build in Qt creator 我有一个包含多个.cpp,.h和CMakeLists.txt文件的源目录。我想将这位导演导入为Qt创建者的项目。现在在我的源代码目录中有.pro文件。我尝试了以下两种方法,但是我仍然无法将此导演加载到Qt创建器中。 Qt Creator中Qt创建者已将cmakelists加载到项目中

  1. 第一种方法:文件 - >导入项目 - >导入现有项目,然后问我带来的“项目名称和位置”。一旦我给出了我现有的源码目录的位置,Qt为我创建了一个新项目,但是,我看不到我的CMakeLists.txt文件在新项目中。如何使用我自己的CMakeLists.txt将我现有的源文件加载到Qt中作为项目?

  2. Qt创建者的第二种方法:File-> Non-Qt Project-> Plain C++ Application,然后单击选择。通过这种方法,它可以在目录中用main.cpp和CMakeLists.txt建立一个新项目,如图所示。但是,一旦我右键点击项目名称“无标题”,看起来“添加新”,“添加现有文件”,“添加现有目录”,“新建子项目”和“添加库”不能被使用,因此我可以添加新的.cpp文件到这个项目中?有人可以帮我弄清楚吗?谢谢。

回答

0

我正在使用Qt Creator 3.6.1和最新版本处理基于CMake的项目比以前的版本好得多。也许你应该试试看? 下面是最新测试版的链接; http://download.qt.io/snapshots/qtcreator/。当然,它还不是一个发布的产品,但我发现它非常稳定。你的里程可能会有所不同。

关于问题2,如您所说的“添加新的”,“添加现有文件”,“添加现有目录”,“新建子项目”和“添加库”都被禁用,因为您必须通过cmake管理项目。您可以编辑CmakeLists.txt并通过“build” - >“Run CMake”再次运行cmake,或者单击重新配置项目列上的“Project”和“Run CMake”按钮。

如果您需要在文件夹中创建新文件,那么您可以右键单击子文件夹名称并单击“在此打开终端”并添加/复制所需文件或选择“显示包含文件夹”作为文件经理。

编辑: 将另一个库添加到您的项目.pro文件,这里是一个例子;

INCLUDEPATH += /usr/local/include/boost 
LIBPATH  += /usr/local/lib/boost 
LIBS  += -lboost_system 

注意到它的-l,不-L

基于上述,您的.pro应该是这样的;

TEMPLATE = app 
QT += qml quick widgets 
CONFIG += c++11 
SOURCES += main.cpp 
RESOURCES += qml.qrc 
INCLUDEPATH += /usr/local/include/ 
LIBPATH += /usr/local/lib/ 
LIBS += -lopencv_core -lopencv_imgproc -lopencv_highgui 

(取决于它的OpenCV库,你需要像-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml或其他)。如果你需要更多,那么你将不得不提供这些库的名称。

============================================== ==============

更新: 从你的代码,这里是我测试(成功编译和执行); 代码:

#include<opencv2/core/core.hpp> 
#include<opencv2/highgui/highgui.hpp> 
#include<opencv2/imgproc/imgproc.hpp> 
int main() 
{ 
    cv::Mat image = cv::imread("diffuse.png"); 
    cv::namedWindow("My Image"); 
    cv::imshow("My image",image); 
    cv::waitKey(5000); 
    return 1; 
} 

。亲

TEMPLATE = app 
QT += qml quick widgets 
CONFIG += c++11 
SOURCES += main.cpp 
#RESOURCES += qml.qrc 
INCLUDEPATH += /usr/local/include/ 
LIBPATH += /usr/local/lib/ 
LIBS += -lopencv_core -lopencv_imgproc -lopencv_highgui 

请注意,我注释掉了qml.qrc因为我没有它。所以我的建议是给你注释掉qml.qrc,编译并运行代码。如果一切正常,那意味着错误的来源可能在qml.qrc中与图像文件有关。

============================================== ==============

编辑: 确保图像的文件夹为可执行文件中,不与源代码文件

HTH

+0

谢谢,问题的答案有效。对于问题,我安装了Qt creator 5.5.1,我认为它是最新版本,你提到的Qt创建者有什么区别?如果我使用.pro文件构建新项目,是否可以将.pro文件更改为CMakeLists.txt文件? CMakeLists.txt和.pro在Qt中有什么区别?我发现这两个文件中的内容看起来都一样。 – Ruby

+0

你的Qt Creator与Qt 5.5.1捆绑在一起,这意味着你正在使用Qt Creator的最新稳定版本,这是一个比我上面提到的更早的版本。您可以点击“帮助”并转到“关于Qt创建者”以了解您的安装的确切版本。至于第二个问题,没有自动转换器可以将.pro转换为您的项目的CMakeLists.txt。您将不得不手动进行转换。然而,这就是说,一旦您准备好了基本模板,就不难做转换,因为您可以对各种项目使用相同的模板进行小的更改。 HTH – share

+0

检查我的更新答案。让我知道它是否工作。 – share