在 Qt 项目中,如果你想通过 qmake
添加自定义的文件夹,通常是为了包含特定的源文件、头文件或者资源文件。这可以通过修改 .pro
文件来实现。以下是一些常见的方法:
- 添加源文件:
如果你有一个自定义的源文件文件夹,例如名为 my_sources
,你可以这样添加:
SOURCES += $$PWD/my_sources/*.cpp |
这里,$$PWD
是当前 .pro
文件所在的目录,*.cpp
会匹配该目录下所有的 .cpp
文件。
2. 添加头文件:
类似地,如果你有一个自定义的头文件文件夹,例如名为 my_headers
,可以这样添加:
HEADERS += $$PWD/my_headers/*.h |
- 添加资源文件:
如果你的资源文件(如图像、文本文件等)放在一个自定义的文件夹中,例如 my_resources
,你可以这样包含它们:
RESOURCES += $$PWD/my_resources/my_resources.qrc |
这里假设你已经在 my_resources
文件夹中创建了一个 .qrc
资源文件。
4. 添加包含路径:
如果你的头文件分布在多个文件夹中,你可能还需要添加这些文件夹到包含路径中:
INCLUDEPATH += $$PWD/my_headers \ | |
$$PWD/another_headers_folder |
- 添加库路径和库:
如果你需要链接到特定的库,而这些库位于自定义的文件夹中,你可以这样做:
LIBS += -L$$PWD/my_libs -lmylib |
这里,-L
指定库文件的搜索路径,-l
指定要链接的库名。
6. 其他自定义设置:
你还可以根据需要添加其他自定义设置,例如定义宏、添加编译标志等。这些都可以通过修改 .pro
文件来实现。
记得在每次修改 .pro
文件后,都需要重新运行 qmake
以应用更改。
直接(自定义)添加的文件夹,自动生成的ui文件,每次都需要自己手动添加这些自己添加的这些文件夹
在 Qt 项目中,如果你有一些自动生成的 UI 文件或者其他由工具生成的文件,并且这些文件被放置在特定的文件夹中,你可能希望 qmake
能够自动将这些文件包含到项目中,而不需要你每次手动添加。这可以通过一些特定的 qmake
语法和配置来实现。
对于自动生成的 UI 文件,你可以使用 FORMS
变量来自动包含这些文件。假设你的 UI 文件被生成在 generated_ui
文件夹中,你可以在 .pro
文件中添加如下代码:
FORMS += $$PWD/generated_ui/*.ui |
这样,qmake
会自动处理这些 UI 文件,并将它们编译成对应的 ui_*.h
头文件。
如果你还有其他的自动生成文件,比如由 MOC(Meta-Object Compiler)生成的元对象代码文件,你可以使用 MOC_SOURCES
变量来包含它们:
MOC_SOURCES += $$PWD/generated_moc/*.h |
这里的 generated_moc
文件夹是假设的,你应该替换成你实际存放 MOC 生成文件的文件夹路径。
另外,如果你希望 qmake
在构建过程中自动执行某些操作,比如自动生成 UI 文件,你可以使用 QMAKE_EXTRA_TARGETS
和 PRE_TARGETDEPS
变量来定义自定义的构建目标。
举个例子,如果你有一个脚本可以生成 UI 文件,并希望这个脚本在每次构建之前都执行,你可以这样设置:
ui_files.target = $$PWD/generated_ui/my_ui.ui | |
ui_files.commands = path/to/your/script.sh | |
QMAKE_EXTRA_TARGETS += ui_files | |
PRE_TARGETDEPS += ui_files |
这样,在每次构建之前,qmake
都会执行 script.sh
脚本来生成 UI 文件。
请注意,qmake
的功能相对有限,对于更复杂的构建需求,可能需要使用更高级的构建系统,如 CMake 或 Makefile。
总的来说,通过合理配置 .pro
文件,你可以自动化包含特定文件夹中的文件,并定义自定义的构建步骤,从而减少手动操作的需求。不过,请注意,这些配置可能需要根据你项目的具体情况进行调整。
相当于cmake的“include_directories” 的qmake 标签是啥
在 qmake
中,与 CMake 的 include_directories
指令功能相似的标签是 INCLUDEPATH
。INCLUDEPATH
用于指定编译器搜索头文件的路径。
在 Qt 的 .pro
文件中,你可以这样设置包含目录:
INCLUDEPATH += $$PWD/path/to/your/headers |
这里,$$PWD
是当前 .pro
文件所在的目录,path/to/your/headers
是你想要添加的头文件目录的相对路径。如果你有多个目录需要添加,可以这样做:
INCLUDEPATH += \ | |
$$PWD/path/to/your/headers1 \ | |
$$PWD/path/to/your/headers2 |
这样设置后,qmake
生成的 Makefile 会包含这些路径,使得编译器能够在编译时找到这些目录下的头文件。这与 CMake 中使用 include_directories
指令添加头文件搜索路径的效果相似。