QT:在".pro" ffly中指定项目目录,如"build"和"src"
QT: specify project directories like "build" and "src" in ".pro" flie
我有一个这样的项目层次结构:
file.pro
src/
files.cpp
include/
headers.h
build/
files.o
bin/
finalExecutable
在.pro
文件中指定什么,以便qmake
生成的 Makefile 从我的 src/
目录中获取.cpp
文件并将可执行文件放在 build
目录中?
对于include
部分,我添加了INCLUDEPATH += include/*
,除了在包含任何file.h
时我必须写#include <include/file.h>
而不是#include <file.h>
之外,它似乎有效。如何将其放入.pro
文件中,以便我可以包含#include <file.h>
等标头。
我尝试添加SOURCES += src/*
,但它显示错误:
error: No rule to make target 'sourceFiles/*', needed by 'mydialog.o'. Stop.
如何指定include
、src
和build
目录?
这应该很容易。只需将其包含在您的.pro
文件中
MOC_DIR = ./build/moc
OBJECTS_DIR = ./build/obj
RCC_DIR = ./build/qrc
UI_DIR = ./build/uic
瞧,文件夹build
及其子目录是在您执行 qMake 后立即创建的。
此外,当您有本地包含时,您不应该使用它#include <localheader.h>
它应该是#include "localheader.h"
将构建目录指定为源子目录并假定 qmake 在源文件夹中执行的 Qmake 文件基本上已损坏。构建任何项目(甚至是非Qt项目!(的推荐方法是从源代码开始。即:
# suppose the sources are in myproject
mkdir myproject-build
cd myproject-build
qmake ../myproject && make # for qmake projects
cmake ../myproject && make # for cmake projects
../myproject/configure && make # for autotools projects
当然,明智的做法是将所有可执行文件硬链接(或复制(到构建目录的某个公共子文件夹中。这需要更多的体操。例如:
EXTRA_BINFILES += $$PWD/src/myproject # target name in src.pro
DESTDIR = $$OUT_PWD/bin
QMAKE_PRE_LINK += $$QMAKE_MKDIR_CMD $$DIR
for(FILE, EXTRA_BINFILES){
QMAKE_POST_LINK +=
$$QMAKE_COPY $$shell_path($$FILE) $$shell_path($$DIR) $$escape_expand(\n\t)
}
有关更多见解,请参阅此问题。
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- CMake "--target install"无需"--build"命令行
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 加载"D:UsersPublicDocumentsopencvbuildx64vc14binopencv_world340d.dll",找不到或打开PDB文件
- meson-build:wxWidgets 资源文件,用于 Windows 未构建
- 错误:断言失败 (src.type() == CV_8UC1) 在阈值中
- 在目录中查找所有.cpp.h文件(include,src等)的传统方法
- 为 g++ build 设置超时,为 Sublime Text 运行?
- build error : undefined reference to `yyFlexLexer::yyFlexLex
- 如何使cmake输出到"build"目录?
- 使用Bazel C++教程;build不创建/使用共享库
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- "Build succeeded"但"The breakpoint will not currently be hit"
- build命令失败,外部原生问题android工作室
- QT:在".pro" ffly中指定项目目录,如"build"和"src"
- 没有规则来制作目标'src/main/jni/Build.config'。停
- 警告:打开错误文件(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.
- opencv 错误:cvCloneImage file build/buildd/opencv-2.1.0/src/cx
- CMake在build和src目录之间分割生成的文件