Qt创建者将cmakelists加载到项目

时间:2016-01-23 20:43:46

标签: c++ ubuntu-14.04 qt-creator

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

  1. Qt创建者中的第一种方法:文件 - >导入项目 - >导入现有项目,然后它要求我提供项目名称和位置"。一旦我给出了现有源目录的位置,Qt就为我构建了一个新项目,但是,我无法在新项目中看到我的CMakeLists.txt文件。如何使用我自己的CMakeLists.txt将现有的源文件加载到Qt作为项目?

  2. Qt创建者中的第二种方法:文件 - >非Qt项目 - >普通C ++应用程序,然后单击选择。通过这种方法,它可以在目录中使用main.cpp和CMakeLists.txt构建一个新项目,如图所示。但是,一旦我右键单击项目名称上的鼠标"无标题",它似乎"添加新","添加现有文件","添加现有目录","新子项目"和"添加库"无法使用,因此我可以将新的.cpp文件添加到此项目中???有人可以帮我解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:0)

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

关于问题2,正如您所说的“添加新”,“添加现有文件”,“添加现有目录”,“新子项目”和“添加库”被禁用,因为您必须通过cmake管理项目。您可以编辑CmakeLists.txt并通过“build”再次重新运行cmake - > “运行CMake”或单击“重新配置项目”列上的“项目”和“运行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;
}

的.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

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

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

编辑: 确保图像作为可执行文件位于文件夹中,而不是源代码文件

HTH