Qt项目包括未找到的文件

时间:2016-03-29 12:45:54

标签: qt-creator

我有一个名为 UePOSCommClient QtCreator项目,它是一些 GUI应用程序,它取决于另一个名为QtCreator项目UePOSCommProtocol ,它是 UePOSCommClient 和一些服务器应用之间的通信协议的实现。这是 UePOSCommClient 项目目录hirerachy:

uePOSCommClient/
├── build
│   └── x64
│       ├── debug
│       │   ├── main.o
│       │   ├── Makefile
│       │   ├── moc_uemainwindow.cpp
│       │   ├── moc_uemainwindow.o
│       │   ├── uemainwindow.o
│       │   └── uePOSCommClient
│       └── release
├── main.cpp
├── uemainwindow.cpp
├── uemainwindow.h
├── uePOSCommClient.pro
└── uePOSCommClient.pro.user

这是 UePOSCommProtocol 项目的直接雇佣关系:

uePOSCommProtocol/
├── build
│   └── x64
│       ├── debug
│       │   ├── libuePOSCommProtocol.so -> libuePOSCommProtocol.so.1.0.0
│       │   ├── libuePOSCommProtocol.so.1 -> libuePOSCommProtocol.so.1.0.0
│       │   ├── libuePOSCommProtocol.so.1.0 -> libuePOSCommProtocol.so.1.0.0
│       │   ├── libuePOSCommProtocol.so.1.0.0
│       │   ├── Makefile
│       │   ├── moc_uemessageheader.cpp
│       │   ├── moc_uemessageheader.o
│       │   ├── moc_uemessagerequest.cpp
│       │   ├── moc_uemessagerequest.o
│       │   ├── moc_ueposcommprotocol.cpp
│       │   ├── moc_ueposcommprotocol.o
│       │   ├── uemessageheader.o
│       │   ├── uemessagerequest.o
│       │   └── ueposcommprotocol.o
│       └── release
│           ├── libuePOSCommProtocol.so -> libuePOSCommProtocol.so.1.0.0
│           ├── libuePOSCommProtocol.so.1 -> libuePOSCommProtocol.so.1.0.0
│           ├── libuePOSCommProtocol.so.1.0 -> libuePOSCommProtocol.so.1.0.0
│           ├── libuePOSCommProtocol.so.1.0.0
│           ├── Makefile
│           ├── moc_uemessageheader.cpp
│           ├── moc_uemessageheader.o
│           ├── moc_uemessagerequest.cpp
│           ├── moc_uemessagerequest.o
│           ├── moc_ueposcommprotocol.cpp
│           ├── moc_ueposcommprotocol.o
│           ├── uemessageheader.o
│           ├── uemessagerequest.o
│           └── ueposcommprotocol.o
├── net
│   └── comm_protocol
│       ├── uemessageheader.cpp
│       ├── uemessageheader.h
│       ├── uemessagerequest.cpp
│       ├── uemessagerequest.h
│       └── ueprotocolcommands.h
├── settings
│   └── uedefaults.h
├── ueposcommprotocol.cpp
├── ueposcommprotocol_global.h
├── ueposcommprotocol.h
├── uePOSCommProtocol.pro
└── uePOSCommProtocol.pro.user

现在,一切正常,项目 UePOSCommClient 编译没有错误,运行没有问题。但是,在 UePOSCommProtocol 项目中,我有以下#include声明:

#include "../../../../../../../../../home/users/Projects/uePOSCommProtocol/settings/uedefaults.h"

uedefaults.h文件的绝对路径。我知道这是一种不好的做法,因此我将上层#include替换为:

#include "settings/uedefaults.h"

这样做之后我得到No such file or directory错误:

In file included from ../../../../uePOSCommProtocol/ueposcommprotocol.h:7:0,
                 from ../../../uemainwindow.h:11,
                 from ../../../main.cpp:3:
../../../../uePOSCommProtocol/net/comm_protocol/uemessagerequest.h:9:33: fatal error: settings/uedefaults.h: No such file or directory
 #include "settings/uedefaults.h"
                                 ^
compilation terminated.
make: *** [main.o] Error 1
14:43:03: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project uePOSCommClient (kit: Desktop Qt 5.6.0 GCC 64bit)
When executing step "Make"

两个项目都位于/home/user/Projects目录中,为什么我会收到此错误?

P.S。:我在Qt 5.6.0 for Linux (64bit)上使用QtCreator 3.6.1 Ubuntu Linux 14.04 LTS (64bit)

0 个答案:

没有答案