Qt多工程多目录编译方法

1、首先建立一个空的目录,如:D:/MyApp
2、用qtcreator新建一个App工程,名字为client,路径指定为D:/MyApp,完成之后关闭当前项目
3、用qtcreator新建一个c++共享库,模块选择guiwidgets,名字为view,路径指定为D:/MyApp,完成之后关闭当前项目
4、用qtcreator新建一个c++共享库,模块选择默认,名字为model,路径指定为D:/MyApp,完成之后关闭当前项目
5、在D:/MyApp目录下,新建一个pro文件,内容如下: TEMPLATE =subdirs#表示这个是Qt跨目录,由多个子项目(如1个应用程序+多个共享库)组成的大项目
SUBDIRS =modelview client#大项目包含的各个子项目,其中 client 是应用程序, view以及model 是共享库
CONFIG +=ordered#CONFIG选项要求各个子项目按顺序编译,子目录的编译顺序在SUBDIRS中指明,先是model然后view 最后是client,生成文件依次为(vc编译)model.lib model.dll view.lib view.dllclient.exe 如果是g++编译则是生成libmodel.a libmodel.so libview.a libview.soclient为可执行文件
6、重新打开pro,然后修改client.pro,修改如下:添加  DESTDIR =../bin#定义项目编译之后生成的结果文件的存放路径添加:   win32{ #表示Windows环境的特殊设置,这个大括号不能单独放在下一行,否则编译会报错  LIBS +=../bin/libSmallBoy.a #包含项目需要用到的共享库,我们使用的是mingw编译器   所以生成的是.a文件   }

unix{#表示Linux环境的特殊设置,这个大括号不能单独放在下一行,否则编译会报错LIBS+=../bin/libSmallBoy.so#包含项目需要用到的共享库,注意文件名多了关键字"lib",扩展名是.so }

添加 INCLUDEPATH += $$PWD/../model $$PWD/../view #&&pwd为当前工作目录,我们将model和view的头文件包含进来

7、修改model以及view的pro,如下:添加  DESTDIR =../bin #定义项目编译之后生成的结果文件的存放路径 添加:win32{ #表示Windows环境的特殊设置,这个大括号不能单独放在下一行,否则编译会报错
}   unix   {   target.path   =   /usr/lib  INSTALLS   +=   target   }
8、我们只要#include "model.h" #include "view.h"在client就可以调用 model 以及 view里面的代码了。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值