- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个简单的子目录项目,在 Qt 中有以下文件树:
nrc.pro
gui
-gui.pro
-mainwindow.h
-mainwindow.cpp
-main.cpp
nrclib
-nrclib.pro
-nrclib.h
-nrclib.cpp
-otherfile.h
-otherfile.cpp
nrclib 使用 OpenCV,所以我在 nrclib.pro 中为 Linux 和 Windows 添加了适当的“includepath and libs”
并且我已经使用nrclib作为gui.pro的库,我没有在gui项目中使用任何opencv函数,所以不需要将opencv的includepath和libs添加到gui.pro中,我有#include <opencv/cv.h>
在 otherfile.h 和 #included "otherfile.h"
中在 nrclib.h 和 #include "nrclib.h"
中在 mainwindow.h 中。
到目前为止一切顺利。这个项目在 windows 和 Linux 下都运行良好。但是今天我做了一个改变,我在“nrclib.h”中添加了一个函数,它需要 opencv,所以我做了 #include <opencv/cv.h>
到 nrclib.h。它在 Linux 下完美运行。但是当我想在 Windows 中编译它时,它给了我:"<opencv/cv.h>: no such file or directory"
.如果我删除包含,一切正常。如果我不在 Qt 中使用“子目录模板”,就不会有任何问题。但是如果我在 Windows 中使用子目录模板,我必须添加 LIBS
和 INCLUDEPATH
OpenCV 到gui.pro,虽然在gui 工程中没有用到opencv 相关函数,我只在mainwindow.h 中包含了nrclib.h .
我的问题是:为什么要加上LIBS
和 INCLUDEPATH
gui.pro 中的 OpenCV?为什么对于已在另一个 header 中使用的包含,它会给我“没有这样的文件或目录”?
很抱歉问了一个冗长而无用的问题,它打扰了我。
编辑 1:我知道 this question但那里没有一个好的答案,应该没有必要在 gui.pro 中添加“OpenCV”,它不需要它。
最佳答案
在 C++(继承自 C)中,#include
通过递归地“复制粘贴”所包含文件的内容有效地工作。因此,如果您包含包含另一个文件的文件,那么也需要找到另一个文件。
因此,如果 nrclib.h 包含 opencv.h,编译器必须在您包含 nrclib.h 时找到 opencv.h .
它在 Linux 上工作可能是因为 opencv.h 是标准的包含路径。如果您不使用子目录模板,它也可以工作,因为您只有一个用于库和应用程序的 INCLUDEPATH。但是对于 Windows 上的子目录项目,gui.pro 无法从任何地方获取它。
作为一个实用的建议,您可以创建 nrclib/nrclib.pri
,然后添加 nrclib 需要的所有内容,LIBS += ...
和 INCLUDEPATH += ...
等等。然后在 gui.pro 中执行
include(../nrclib/nrclib.pri)
这样 gui.pro 不需要直接关心 opencv,它只需要包含来自另一个子目录项目的这个 .pri 文件。
另一种选择是更改 nrclib.h,使其不需要 opencv.h。这可能意味着,您需要从 OpenCV 包装您需要的任何内容,这样您就不需要在 nrclib.h 中使用。这是多少额外的代码,取决于您从那里到底需要什么。
关于c++ - 在 qt 的子目录项目中找不到 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28514692/
有没有办法为我的一些文件创建一个子目录?这纯粹是为了文件组织。我有大量的小结构/方法,我想将它们放入它们自己的文件和子目录中,但我不想将它们放入它们自己的包中。他们依赖于我项目中的其他功能。每一个都在
我想将目录中的文件和文件夹复制到另一个文件夹中,但不包含包含该文件的子文件夹,例如,对于node_modules目录,我有大量文件,例如100Mb和50K +个文件,不需要复制。 我试过这样使用xco
嘿,我想安装一个论坛(xenforo),我已经得到了所有的 .php 文件,我把文件夹放在/usr/share/nginx/html 页面在哪里(主页 index.html),但是当我做 127.0.
我想在我的 Symfony2 应用程序的子目录中隔离一些 Controller 。 像这样的东西: route: resource: "@MyBundle/Controller/Admin/"
我们有一个由离岸外包开发公司开发的旧应用程序,它仍在使用 Azure 存储客户端 1.7。 因此,我会在此版本停止工作之前对其进行更新。 有一个单元测试我无法通过。 [TestMethod()
我已将 WordPress 安装在子目录中: /public_html/blog/ 我希望能够像这样访问博客: http://example.com/blog 以及类似这样的帖子: http://ex
我正在尝试制作一个程序来将特定文件夹中的文件以及主文件夹的子文件夹中的文件备份到另一个备份文件夹。 这是我试图实现目标的代码的一部分,但是我只备份了主文件夹中的文件,而子文件夹正在被完全复制(其中的所
我无法在 NSTemporaryDirectory 子文件夹中存储任何文件 rootDirectoryName 是 GUIDsubDirectoryName 也是一个 GUID self.rootFo
我最近正在制作一些 Java 软件来查找文件夹中的一些文件/目录,如果它们的名称包含某些文本,它们将被重命名为其他名称。我使用 Files.walkFileTree 遍历目录,如果找到一个匹配的文件/
我一直在互联网深处搜索,试图让 HAProxy 正常运行,但我不确定它能否完成我想要的。 我试着按照这个:https://www.haproxy.com/blog/howto-write-apache
我正在尝试查找其中包含最多文件的目录。我知道我可以使用以下方法找到文件数: find -maxdepth 5 -type f | wc -l 但这只有在我知道要检查哪个目录时才有用。我想找到包含最多文
我正在尝试按如下方式组织我的项目目录 外壳 |inc/[头文件] |obj/[目标文件] |src/[源文件] |生成文件 |可执行 根文件夹中的所有内容都可以正常编译,但我在修改我的 makefil
当我在谷歌上搜索 yahoo、godaddy 等时,它们会显示子目录,如附图所示。但是当我在谷歌上找到我的网站时,它并没有显示那种东西。问题是什么? 最佳答案 有机 SERP 部分的 Google 附
我有一个名为“myproject”的项目,它由 git 进行版本控制。它有一个名为“data”的子目录,该目录已被 gitignored。 我可以为数据目录“git init”并将其作为单独的 git
我有一个目录位置,如何创建所有目录?例如C:\Match\Upload 将同时创建 Match 和子目录 Upload(如果不存在)。 使用 C# 3.0 谢谢 最佳答案 Directory.Crea
如何在 C++ 中删除包含所有文件/子目录的文件夹(递归删除)? 最佳答案 说真的: system("rm -rf /path/to/directory") 也许更多您正在寻找的东西,但特定于 uni
在我正在处理的当前项目中,有人决定将二进制文件作为源树的一部分 checkin 。二进制文件位于源代码下方的目录中: project/src # Here is the loc
我最近知道了 meteor 私有(private)子目录。根据文档:“私有(private)子目录是服务器代码可以访问但不提供给客户端的任何文件的位置,例如私有(private)数据文件。”一般来说,
我的存储库中有多个项目(子目录)。所有项目都只有一个名为main.cpp的可执行文件,并且它们都使用common语句中的#include文件夹中的库。文件夹结构如下所示: root | ├────co
如何在 C# 中搜索这样的路径: "C:\MyApp\*\日志" 我想获取与该搜索模式匹配的所有目录。 示例结果: C:\MyApp\20171009\日志 C:\MyApp\20171008\日志
我是一名优秀的程序员,十分优秀!