Linux Qt工程组织结构与动态库引用,如何让自己的代码保持结构清楚。
从介绍我的一个工程文件结构入手,希望对大家有所帮助。
1 工程目录结构总体介绍
随着自己的工程越来越大,文件越来越多,慢慢的发现各种工程文件的管理的重要性。
上图是我的一个工程的目录,其中:
Design 用来存放对于软件的各种设计记录,以及工作笔记。
工作笔记,比如最近某天更新的那些功能,存在哪些问题需要日后找大段的时间来解决。
Library 用来存储外部动态库的头文件。
在工作中,不可避免的需要使用其他已经存在的动态库,这里存放那些动态库所对应的
头文件。而真正的动态库so文件,放在了Resource目录下,下面介绍Resource目录时
会提到。
Resource 用来存放各种软件运行是需要的目录结构和配置文件、脚本文件。下面会对此
详细说明。
src 用来存放软件所有的源代码。
2 Resource目录介绍
上图是Resource目录的结构。
当程序预编译时,会把这个目录下的所有内容复制到指定的目标目录下。
Config 存放的是配置文件。配置文件可以从此目录中拿出来,直接放到Resource目录下。
Global 目录用来存放软件运行时所要读取的xml文件。
Library 用来存放系统运行时需要连接的动态库。这些动态库也可以直接放到Resource目录下,windows系统下的
大多数软件都是将软件的可执行程序以及连接需要的动态库直接放到同一个目录下。因为当软件的可执行文件运行时
会自动的在当前目录下查找连接所需要的动态库。但是,当在linux环境下,就算动态库与可执行程序放在同一个目录下,
有时也会发生可执行程序着不到动态库的情况,这时就需要手动编写脚本来将可执行程序运行所需要的动态库路径添加到
环境变量中。
UI 存数软件编辑生成的页面文件。
3 Qt pro文件介绍
整个工程的pro文件使用模版类型是subdirs,用来添加各个代码子工程。
OTHER_FILES 把设计记录文件加载到工程中,这样会在大工程的最后看到自己的设计记录文件,
便于随时记录自己的设计想法,而不打乱整个工程代码的结构。
include 添加pri预编译文件,下图是pri文件的具体内容。
这个文件在这里的作用是,写明可执行程序输出到那个目录下。
system 中的命令格式和终端命令一样。当对此pro文件执行qmake时,将运行此命令。
在这里是将工程目录下的Resource下的所有文件拷贝到可执行文件将会输出到的目录。
4 工程中动态库的引用
通常动态库的引用方式有两种,工程内部动态库的引用、工程外部动态库的引用。
工程内部动态库的引用相对比较简单,直接通过QtCreator的引用选项就能正确的引用。
工程外的动态库引用需要手动的指定动态库所在路径,以及对应头文件的位置。
上图中ControlBaseLib是一个内部动态库,FLFtpClientLibrary是一个外部动态库。
TARGET_LIB_PATH所指向的路径就是动态库被复制到的路径。
大概讲讲我的一个工程的目录结构设计,希望对你有所启发,
如果有更好的设计或者以上设计不足之处,欢迎留言探讨。
原文:http://www.cnblogs.com/gebilaowangdebaba/p/5013297.html