检查文件夹是否存在并在 .pro 文件中创建文件夹
check folder exist and create folder in .pro file
我必须在我的目标路径中创建一个文件夹并复制头文件。
所以我在 .pro 文件中使用了以下命令
DESTDIR_WIN_CELLTWEAK = $${CORE_API_PATH}/Include/spgc/
DESTDIR_WIN_CELLTWEAK ~= s,/,\,g
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
for(FILE,EXPORTED_HEADERS_WIN){
QMAKE_POST_LINK +=$$quote(cmd /c copy /y $${FILE} $${DESTDIR_WIN_CELLTWEAK}&$$escape_expand(\n\t))
}
第一次创建文件夹。但是在构建第二个时,我必须避免创建 spgc 文件夹(因为已经存在)。
如果 spgc 文件夹已经存在,qt build 也会抛出错误。
我试过了
!exists($${DESTDIR_WIN_CELLTWEAK})
{
$$quote($${DESTDIR_WIN_CELLTWEAK})
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
但即使文件夹存在,调用 !exists() 函数并创建文件夹。
我就是这样解决的
exists($$DESTDIR_WIN_CELLTWEAK) {
message("existing")
} else {
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
我添加了 if 为空,否则创建了目录
用于预构建
mkdir.commands = $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK}
QMAKE_EXTRA_TARGETS += mkdir
后期制作
QMAKE_POST_LINK += $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK}
向 .pro 文件添加行
我知道这是一个很老的问题,但我遇到了同样的问题,我认为我现在已经找到了解决方案。
在您的代码中,问题是括号:它应该保持在条件的同一行。
这应该有效:
!exists($${DESTDIR_WIN_CELLTWEAK}) {
$$quote($${DESTDIR_WIN_CELLTWEAK})
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
听起来很荒谬,但就是这样......
我必须在我的目标路径中创建一个文件夹并复制头文件。
所以我在 .pro 文件中使用了以下命令
DESTDIR_WIN_CELLTWEAK = $${CORE_API_PATH}/Include/spgc/
DESTDIR_WIN_CELLTWEAK ~= s,/,\,g
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
for(FILE,EXPORTED_HEADERS_WIN){
QMAKE_POST_LINK +=$$quote(cmd /c copy /y $${FILE} $${DESTDIR_WIN_CELLTWEAK}&$$escape_expand(\n\t))
}
第一次创建文件夹。但是在构建第二个时,我必须避免创建 spgc 文件夹(因为已经存在)。
如果 spgc 文件夹已经存在,qt build 也会抛出错误。
我试过了
!exists($${DESTDIR_WIN_CELLTWEAK})
{
$$quote($${DESTDIR_WIN_CELLTWEAK})
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
但即使文件夹存在,调用 !exists() 函数并创建文件夹。
我就是这样解决的
exists($$DESTDIR_WIN_CELLTWEAK) {
message("existing")
} else {
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
我添加了 if 为空,否则创建了目录
用于预构建
mkdir.commands = $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK}
QMAKE_EXTRA_TARGETS += mkdir
后期制作
QMAKE_POST_LINK += $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK}
向 .pro 文件添加行
我知道这是一个很老的问题,但我遇到了同样的问题,我认为我现在已经找到了解决方案。 在您的代码中,问题是括号:它应该保持在条件的同一行。
这应该有效:
!exists($${DESTDIR_WIN_CELLTWEAK}) {
$$quote($${DESTDIR_WIN_CELLTWEAK})
QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}
听起来很荒谬,但就是这样......