Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1947|回复: 1
打印 上一主题 下一主题

Qt Creator 工程创建

[复制链接]

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
跳转到指定楼层
楼主
发表于 2018-2-23 23:00:31 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 Qter 于 2018-2-24 00:47 编辑

打开Qt Creator
1.创建解决方案
文件->新建文件或项目->其它项目->子目录项按向导(选择相关路径) ... 完成


即只生成一个 DoraemonSolution.pro文件  内容为:TEMPLATE = subdirs

2.创建主界面程序
右键 DoraemonSolution 新建子项目->Application->Qt Widgets Application
根据向导填写项目名称为 Doraemon

3.添加静态库QCommLib


右键 DoraemonSolution 新建子项目->Library->C++库


依赖库默认 QtCore
注意最后一步 默认做为子项目加入,如下:



4.Doraemon中添加对静态库QCommLib的依赖


右键 Doraemon ->添加库-> 内部库




下一步后,将在Doraemon.pro文件添加如下代码

  1. win32:CONFIG(release, debug|release): LIBS += -L$OUT_PWD/../QCommLib/release/ -lQCommLib
  2. else:win32:CONFIG(debug, debug|release): LIBS += -L$OUT_PWD/../QCommLib/debug/ -lQCommLib
  3. else:unix: LIBS += -L$OUT_PWD/../QCommLib/ -lQCommLib

  4. INCLUDEPATH += $PWD/../QCommLib
  5. DEPENDPATH += $PWD/../QCommLib

  6. win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $OUT_PWD/../QCommLib/release/libQCommLib.a
复制代码
调用时直接包含相关库中的头文件(如:#include "qcommlib.h" ),就可以调用了


5.添加动态库QControlSo

右键 DoraemonSolution 新建子项目->Library->C++库




共享 库 多了文件 qcontrolso_global.h
  1. #ifndef QCONTROLSO_GLOBAL_H
  2. #define QCONTROLSO_GLOBAL_H

  3. #include <QtCore/qglobal.h>

  4. #if defined(QCONTROLSO_LIBRARY)
  5. #  define QCONTROLSOSHARED_EXPORT Q_DECL_EXPORT
  6. #else
  7. #  define QCONTROLSOSHARED_EXPORT Q_DECL_IMPORT
  8. #endif

  9. #endif // QCONTROLSO_GLOBAL_H
复制代码
宏的相关定义,如下:
  1. #  ifdef Q_OS_WIN
  2. #    define Q_DECL_EXPORT     __declspec(dllexport)
  3. #    define Q_DECL_IMPORT     __declspec(dllimport)
  4. #  elif defined(QT_VISIBILITY_AVAILABLE)
  5. #    define Q_DECL_EXPORT     __attribute__((visibility("default")))
  6. #    define Q_DECL_IMPORT     __attribute__((visibility("default")))
  7. #    define Q_DECL_HIDDEN     __attribute__((visibility("hidden")))
  8. #  endif
复制代码
6.Doraemon中添加对共享库QControlSo的依赖
右键 Doraemon ->添加库-> 内部库

下一步后,将在Doraemon.pro文件添加如下代码
  1. win32:CONFIG(release, debug|release): LIBS += -L$OUT_PWD/../QControlSo/release/ -lQControlSo
  2. else:win32:CONFIG(debug, debug|release): LIBS += -L$OUT_PWD/../QControlSo/debug/ -lQControlSo
  3. else:unix: LIBS += -L$OUT_PWD/../QControlSo/ -lQControlSo

  4. INCLUDEPATH += $PWD/../QControlSo
  5. DEPENDPATH += $PWD/../QControlSo
复制代码
回复

使用道具 举报

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
沙发
 楼主| 发表于 2018-2-24 00:32:17 | 只看该作者
QT坑人一大亮点:如果你在构建过程中出现问题,你重新修改后确定没有错误的前提下,再运行可能还是相同的错误,那么你需要

清除----------重新执行qmake------重新构建
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 09:00 , Processed in 0.063266 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表