1. 新建项目,选择“Library”,“C++库”
QT 项目添加外部库
2. 类型是“共享库”,选择路径,项目名;同时可以选择需要的 QT 的模块
3. 测试,在类里面添加成员函数
//////////////////////////////lib_util_global.h
#ifndef LIB_UTIL_GLOBAL_H
#define LIB_UTIL_GLOBAL_H
#include
#if defined(LIB_UTIL_LIBRARY)
# define LIB_UTILSHARED_EXPORT Q_DECL_EXPORT
#else
# define LIB_UTILSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // LIB_UTIL_GLOBAL_H
//////////////////////////////lib_util.h
#ifndef LIB_UTIL_H
#define LIB_UTIL_H
#include "lib_util_global.h"
class LIB_UTILSHARED_EXPORT Lib_util
{
public:
Lib_util();
void printxh(QString key, QString value);
};
#endif // LIB_UTIL_H
//////////////////////////////lib_util.cpp
#include "lib_util.h"
#include
Lib_util::Lib_util()
{
}
void Lib_util::printxh(QString key, QString value)
{
qDebug()<< key << "=" << value;
}
4. 编译库,库不能直接运行。配置项目的构建目录为项目目录下;同时,选中项目,右键,
构建,得到编译的动态库。
选择 debug 或者 release 模型进行编译,在相应的目录下得到 dll 文件
到此,库项目编译完成。
下面是项目调用库项目。
1. 选中项目,右键,“添加库”,选择“外部库”
2. 选择库文件和包含路径:
库文件为 liblib_util.a 文件,在 debug 或者 release 目录下
包含路径是头文件的路径,在库项目的根目录下
3. 完成配置,将配置信息添加到项目的.pro 文件中
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../lib_util/release/ -llib_util
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../lib_util/debug/ -llib_util
else:unix: LIBS += -L$$PWD/../lib_util/ -llib_util
INCLUDEPATH += $$PWD/../lib_util
DEPENDPATH += $$PWD/../lib_util
4. 到此,配置库项目完成,可以像项目内部的头文件一样,调用外部库项目中的头文件。
编译的时候,会自动关联库项目中的动态库,完成编译。
Lib_util util;
util.printxh("haha", "this is haha");
注意:
库项目中的类定义 需要包含 LIB_UTILSHARED_EXPORT,同时#include 。不
然会导致 undefined reference 这个常见的错误,即链接库未找到,编译出错。
class LIB_UTILSHARED_EXPORT Util