检查文件夹存在并在.pro文件中创建文件夹

问题描述 投票:3回答:3

我必须在目标路径中创建一个文件夹并复制头文件。

所以我在.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 throws也会出错。

我试过了

!exists($${DESTDIR_WIN_CELLTWEAK})
    {
        $$quote($${DESTDIR_WIN_CELLTWEAK})
        QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
    }

但即使文件夹存在,!exists()函数也被调用并创建文件夹。

qt qmake
3个回答
3
投票

这就是我如何解决它

exists($$DESTDIR_WIN_CELLTWEAK) {
        message("existing")
    } else {
            QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
    }

我添加了if with empty和in else创建了目录


1
投票

预建mkdir.commands = $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK} QMAKE_EXTRA_TARGETS += mkdir

对于postbuild QMAKE_POST_LINK += $(CHK_DIR_EXISTS) $${DESTDIR_WIN_CELLTWEAK} $(MKDIR) $${DESTDIR_WIN_CELLTWEAK}

在.pro文件中添加行


1
投票

我知道这是一个相当古老的问题,但我遇到了同样的问题,我认为我现在已经找到了解决方案。在您的代码中,问题是括号:它应该保持在条件的同一行。

这应该工作:

!exists($${DESTDIR_WIN_CELLTWEAK}) {   
    $$quote($${DESTDIR_WIN_CELLTWEAK})
    QMAKE_POST_LINK += $$quote(mkdir $${DESTDIR_WIN_CELLTWEAK} $$escape_expand(\n\t))
}

这听起来很荒谬,但就是这样......

© www.soinside.com 2019 - 2024. All rights reserved.