Qt如何包含大量复杂路径的头文件

von_karman 2014-06-24 08:32:52
要包含的头文件非常多,而且分属在很多不同的文件夹里,路径都很深,怎样包含这些头文件呢?不可能一一列出来文件夹路径啊
...全文
11013 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36982403 2016-12-09
  • 打赏
  • 举报
回复
1 自动添加完头文件之后,会生成一个头文件列表。 2 将头文件列表保存出去,然后移除头文件那几个字符 ***.H 3 复制回来,加入pro文件的 INCLUDEPATH #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; int main() { string filePath = "I:/AAA/"; //替换为你的文件夹 ifstream file(filePath+"path.txt", ios_base::in); if(!file.is_open()){ cout << "Open file: " << filePath << " failed!\n" << "The program automatically exits!"; return 0; } // Reading and Treating vector<string> fileBuffer; string strBuffer; while(getline(file,strBuffer)){ size_t pos = strBuffer.find_last_of("/"); if(pos == string::npos){ fileBuffer.push_back(strBuffer); } else{ fileBuffer.push_back(strBuffer.substr(0,pos)+ " \\"); } } file.close(); // Write to out.txt ofstream outFile(filePath+"out.txt",ios_base::out); if(!outFile.is_open()){ cout << "Open file: " << filePath << "out.txt" << " failed!\n" << "The program automatically exits!"; return 0; } for(vector<string>::const_iterator it = fileBuffer.begin(); it != fileBuffer.end(); ++it) { outFile << *it << "\n"; } outFile.close(); cout << "Hello World!" << endl; return 0; }
尘中远 2015-02-11
  • 打赏
  • 举报
回复 1
引用 8 楼 von_karman 的回复:
[quote=引用 3 楼 czyt1988 的回复:] 我喜欢用pri文件,然后 每个pri文件都给他指定当前路径为INCLUDEPATH INCLUDEPATH += $$PWD DEPENDPATH += $$PWD 具体如下: 主程序pro 其中一个pri 由于已经INCLUDEPATH += $$PWD,且每个头文件的加入都使用如下的路径: HEADERS += \ $$PWD/MdiSubWindow.h \ $$PWD/PropertySearch.h \ $$PWD/DesigneDataInput.h \ $$PWD/CompressorEffWnd.h 因此每次引用头文件都直接用<>括号即可 当然,用“”也是可以的
明白怎么做了,多谢~[/quote] INCLUDEPATH就包含文件夹就行,不用添加文件,如一个文件夹是xxx里面有一万个头文件,那么你就INCLUDEPATH += $$PWD\xxx 里面的头文件就可以用了,只是在项目管理数上看不到头文件,只是看到那个文件夹
von_karman 2014-06-27
  • 打赏
  • 举报
回复
引用 3 楼 czyt1988 的回复:
我喜欢用pri文件,然后 每个pri文件都给他指定当前路径为INCLUDEPATH INCLUDEPATH += $$PWD DEPENDPATH += $$PWD 具体如下: 主程序pro 其中一个pri 由于已经INCLUDEPATH += $$PWD,且每个头文件的加入都使用如下的路径: HEADERS += \ $$PWD/MdiSubWindow.h \ $$PWD/PropertySearch.h \ $$PWD/DesigneDataInput.h \ $$PWD/CompressorEffWnd.h 因此每次引用头文件都直接用<>括号即可 当然,用“”也是可以的
明白怎么做了,多谢~
von_karman 2014-06-27
  • 打赏
  • 举报
回复
引用 6 楼 foruok 的回复:
[quote=引用 4 楼 von_karman 的回复:] [quote=引用 1 楼 foruok 的回复:] 在 pro 文件中,使用 INCLUDEPATH 变量,把那些文件夹都添加进入,例如: INCLUDEPATH += /xxx/yyyy/ INCLUDEPATH += /xxx/aaaa/ 就这样。
如果这样包含头文件的最底层的文件夹有500个呢?[/quote] 就是有 5000个 50000万个,你弄一遍又怎么了兄弟?[/quote] 问题解决了,多谢~
foruok 2014-06-25
  • 打赏
  • 举报
回复
引用 4 楼 von_karman 的回复:
[quote=引用 1 楼 foruok 的回复:] 在 pro 文件中,使用 INCLUDEPATH 变量,把那些文件夹都添加进入,例如: INCLUDEPATH += /xxx/yyyy/ INCLUDEPATH += /xxx/aaaa/ 就这样。
如果这样包含头文件的最底层的文件夹有500个呢?[/quote] 就是有 5000个 50000万个,你弄一遍又怎么了兄弟?
von_karman 2014-06-25
  • 打赏
  • 举报
回复
引用 2 楼 Indestiny 的回复:
要是那些文件不怎么改的话,放到预编译头里面可以哦 pro里面加上PRECOMPILED_HEADER 这样其他地方不用include就可以用这些头文件了,但是不include的话就没有语法高亮什么的了,所以include一下预编译头也不错
头文件不是自己写的,只是拿来用,而且数以千计,怎样放在预编译头里面呢?
von_karman 2014-06-25
  • 打赏
  • 举报
回复
引用 1 楼 foruok 的回复:
在 pro 文件中,使用 INCLUDEPATH 变量,把那些文件夹都添加进入,例如: INCLUDEPATH += /xxx/yyyy/ INCLUDEPATH += /xxx/aaaa/ 就这样。
如果这样包含头文件的最底层的文件夹有500个呢?
奉壹 2014-06-24
  • 打赏
  • 举报
回复
要是那些文件不怎么改的话,放到预编译头里面可以哦 pro里面加上PRECOMPILED_HEADER 这样其他地方不用include就可以用这些头文件了,但是不include的话就没有语法高亮什么的了,所以include一下预编译头也不错
foruok 2014-06-24
  • 打赏
  • 举报
回复
在 pro 文件中,使用 INCLUDEPATH 变量,把那些文件夹都添加进入,例如: INCLUDEPATH += /xxx/yyyy/ INCLUDEPATH += /xxx/aaaa/ 就这样。
尘中远 2014-06-24
  • 打赏
  • 举报
回复 1
我喜欢用pri文件,然后
每个pri文件都给他指定当前路径为INCLUDEPATH
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
具体如下:
主程序pro

其中一个pri

由于已经INCLUDEPATH += $$PWD,且每个头文件的加入都使用如下的路径:
HEADERS += \
$$PWD/MdiSubWindow.h \
$$PWD/PropertySearch.h \
$$PWD/DesigneDataInput.h \
$$PWD/CompressorEffWnd.h
因此每次引用头文件都直接用<>括号即可

当然,用“”也是可以的
前言 make 这个工具自上个世纪 70 年代 Stuart Feldman 在贝尔实验室开发出以来,就一直是类 UNIX 程序员的最爱之一。通过检查文件的修改时间,make 工具可以知道编译目标文件所要依赖的其他文件。在复杂的项目中,如果只有少数几个文件修改过,make 工具知道仅仅需要对哪些文件重新编译就可以确保目标程序被正确的编译链接。这样做的好处就是在编译中,不仅可以节省大量的重复输入,还可以确保程序可以被正确的链接,缩短编译的时间。虽然如此,但是为 make 工具编写建造规则却不是一件容易的事。它复杂的配置规则,即使是有经验的开发者也望而生畏。make 工具的许多替代品便因此而诞生,SCons 就是是其中之一。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。 -------------------------------------------------------------------------------- 回页首 SCons 简介 SCons 是一个开放源代码、以 Python 语言编写的下一代的程序建造工具。它最初的名字是 ScCons, 基于由 perl 语言编写的 Cons 软件开发而成,它在 2000 年 8 月获得了由 Software Carpentry 举办的 SC 建造比赛的大奖。现在 ScCons 已经被改名为 SCons,目的是为了表示不再与 Software Carpentry 有联系,当然,还有一个目的,就是为了更方便的输入。 作为下一代的软件建造工具,SCons 的设计目标就是让开发人员更容易、更可靠和更快速的建造软件。与传统的 make 工具比较,SCons 具有以下优点: 使用 Python 脚本做为配置文件 对于 C,C++ 和 Fortran, 内建支持可靠自动依赖分析 . 不用像 make 工具那样需要执行"make depends"和"make clean"就可以获得所有的依赖关系。 内建支持 C, C++, D, Java, Fortran, Yacc, Lex, Qt,SWIG 以及 Tex/Latex。用户还可以根据自己的需要进行扩展以获得对需要编程语言的支持。 支持 make -j 风格的并行建造。相比 make -j, SCons 可以同时运行 N 个工作,而不用担心代码的层次结构。 使用 Autoconf 风格查找头文件,函数库,函数和类型定义。 良好的夸平台性。SCons 可以运行在 Linux, AIX, BSD, HP/UX, IRIX, Solaris, Windows, Mac OS X 和 OS/2 上。 -------------------------------------------------------------------------------- 回页首 安装 SCons SCons 支持多种操作系统平台,并为各个系统制作了易于安装的文件,因此在各个系统平台上的安装方法不尽相同,在 SCons 的官方网站上可以查每个平台的具体安装方法。 如果 SCons 没有为你的系统制作相应的安装包,你也可以下载 SCons 的源代码,直接进行安装。 首先,从 SCons 的网站上下载最新的 SCons 源代码包(目前 SCons 的最新版本是 2.0.1)。其次,解压下载的源代码。视下载的源代码包的格式不同而有不同的方法,在 Windows 平台上,可是使用 winzip 或者其他类似的工具解压。在 Linux 平台上,对于 tar 包,使用 tar 命令进行解压,如: $ tar -zxf scons-2.0.1.tar.gz 然后切换进入解压后的目录进行安装,如 $ cd scons-2.0.1 $ sudo python setup.py install 命令执行如果没有错误,那么 scons 就被安装到系统上了。对于 Linux 来说,scons 会默认安装到 /usr/loca/bin 目录下,而在 Windows 平台上,则会被安装到 C:\Python25\Scripts 下。 -------------------------------------------------------------------------------- 回页首 使用 SCons 在 SCons 安装完成后,我们就可以使用 SCons 来建造我们的程序或者项目了。像很多编程书籍那样,在这里我们也通过一个简单的 helloscons 例子来说明如何使用

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧