4 qt
我正在尝试构建两个库:一个是静态的,一个是共享的。问题出在静态库上。我有以下文件夹:
src/
db/
dbal.h
dbal.pro
dll/
Distribution.h
dll.pro
project.pro
Run Code Online (Sandbox Code Playgroud)
db是静态的,dll是共享的
分布.h:
#ifndef DISTRIBUTION_H_
#define DISTRIBUTION_H_
#include <QtCore/QtGlobal>
#if defined(BUILDING_DLL)
#define DLL_FUNCTION Q_DECL_EXPORT
#else
#define DLL_FUNCTION Q_DECL_IMPORT
#endif
#endif /* DISTRIBUTION_H_ */
Run Code Online (Sandbox Code Playgroud)
现在这是 db/ 内的文件,其中包括Distribution.h
dbal.h
#ifndef DBAL_H_
#define DBAL_H_
#include "Distribution.h"
...
#endif
Run Code Online (Sandbox Code Playgroud)
数据库专业版:
TARGET = db
TEMPLATE = lib
CONFIG = staticlib c++11
QT += core
INCLUDEPATH += ../dll
HEADERS += dbal.h
HEADERS += dbal_sqlite.h
SOURCES += dbal.cpp
SOURCES += dbal_sqlite.cpp
######################################################################
# Build to custom directories
######################################################################
DESTDIR = ../../build/debug/db
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui
Run Code Online (Sandbox Code Playgroud)
当我在 db/ 文件夹中运行 make 时,出现以下错误: QtCore/QtGlobal:没有这样的文件或目录。似乎还缺少 -I 命令。
这是我的日志:
make all
cd src/db/ && ( test -e Makefile || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /mnt/record/_dev/linux/projects/cdt/wasp/src/db/db.pro -o Makefile ) && make -f Makefile all
make[1]: Entering directory `/mnt/record/_dev/linux/projects/cdt/wasp/src/db'
g++ -c -m64 -pipe -O2 -std=c++0x -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I../dll -o ../../build/debug/db/.obj/dbal.o dbal.cpp
In file included from dbal.h:9:0,
from dbal.cpp:3:
../dll/Distribution.h:4:27: fatal error: QtCore/QtGlobal: No such file or directory
#include <QtCore/QtGlobal>
^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
注意日志:
g++ -c -m64 -pipe -O2 -std=c++0x -I/usr/share/qt5/mkspecs/linux-g++-64 -I。-I../dll -o ../../build/debug/db/.obj/dbal.o dbal.cpp
显示包含提供给 g++ 的路径,但不包含QtCore/QtGlobal.
解决方案是.pro文件需要
CONFIG = staticlib c++11
改为:
CONFIG += staticlib c++11
具体来说,该CONFIG = ...行已从配置中删除了该元素,因此您的项目不包含也不链接 Qt 文件。qt
| 归档时间: |
|
| 查看次数: |
16799 次 |
| 最近记录: |