我正在使用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
谢谢,问题的答案有效。对于问题,我安装了Qt creator 5.5.1,我认为它是最新版本,你提到的Qt创建者有什么区别?如果我使用.pro文件构建新项目,是否可以将.pro文件更改为CMakeLists.txt文件? CMakeLists.txt和.pro在Qt中有什么区别?我发现这两个文件中的内容看起来都一样。 – Ruby
你的Qt Creator与Qt 5.5.1捆绑在一起,这意味着你正在使用Qt Creator的最新稳定版本,这是一个比我上面提到的更早的版本。您可以点击“帮助”并转到“关于Qt创建者”以了解您的安装的确切版本。至于第二个问题,没有自动转换器可以将.pro转换为您的项目的CMakeLists.txt。您将不得不手动进行转换。然而,这就是说,一旦您准备好了基本模板,就不难做转换,因为您可以对各种项目使用相同的模板进行小的更改。 HTH – share
检查我的更新答案。让我知道它是否工作。 – share