Qt5之qmake配置:自动复制依赖库

 新建项目后复制下面到pro文件最下方即可使用。

方便地自动复制依赖库(需要翻译文件的修改一下调用命令那里即可)

PROJECT_DIRECTORY = $$PWD
COMMON_DIRECTORY = $$PWD

CONFIG(debug, debug|release) {

    contains(QMAKE_COMPILER, gcc) {
        if($$ARCHITECTURE_64_BIT) {
            DESTDIR = $${COMMON_DIRECTORY}/build/debug-64bit-gcc
            TARGET = ($$TARGET)-debug-64bit-gcc
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-debug-64bit-gcc
        } else {
            DESTDIR = $${COMMON_DIRECTORY}/build/debug-32bit-gcc
            TARGET = $${TARGET}-debug-32bit-gcc
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-debug-32bit-gcc
        }
    }

    contains(QMAKE_COMPILER, msvc) {
        if($$ARCHITECTURE_64_BIT) {
            DESTDIR = $${COMMON_DIRECTORY}/build/debug-64bit-msvc
            TARGET = $${TARGET}-debug-64bit-msvc
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-debug-64bit-msvc
        } else {
            DESTDIR = $${COMMON_DIRECTORY}/build/debug-32bit-msvc
            TARGET = $${TARGET}-debug-32bit-msvc
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-debug-32bit-msvc
        }
    }

} else {

    contains(QMAKE_COMPILER, gcc) {
        if($$ARCHITECTURE_64_BIT) {
            DESTDIR = $${COMMON_DIRECTORY}/build/release-64bit-gcc
            TARGET = $${TARGET}
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-release-64bit-gcc
        } else {
            DESTDIR = $${COMMON_DIRECTORY}/build/release-32bit-gcc
            TARGET = $${TARGET}-32bit
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-release-32bit-gcc
        }
    }

    contains(QMAKE_COMPILER, msvc) {
        if($$ARCHITECTURE_64_BIT) {
            DESTDIR = $${COMMON_DIRECTORY}/build/release-64bit-msvc
            TARGET = $${TARGET}
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-release-64bit-msvc
        } else {
            DESTDIR = $${COMMON_DIRECTORY}/build/release-32bit-msvc
            TARGET = $${TARGET}-32bit
            OBJECTS_DIR = $${PROJECT_DIRECTORY}/generated/obj-release-32bit-msvc
        }
    }
    DEFINES += NDEBUG
}

S = $${DIR_SEPARATOR}

D = $$DESTDIR
D = $$replace(D, $$escape_expand(\\), $$S)
D = $$replace(D, /, $$S)

E = $$escape_expand(\n\t)

win32 {
    QT += winextras

    DEPLOY_COMMAND = windeployqt
    DEPLOY_TARGET = $$shell_quote($$shell_path($${D}/$${TARGET}.exe))
    QMAKE_POST_LINK += $${DEPLOY_COMMAND} --no-translations $${DEPLOY_TARGET} $${E}

    if($$ARCHITECTURE_64_BIT) {
        message("x86_64 build")
    } else {
        message("x86 build")
        contains(QMAKE_COMPILER, gcc) {
                QMAKE_LFLAGS += -Wl,--large-address-aware
        }
        contains(QMAKE_COMPILER, msvc) {
                QMAKE_LFLAGS += /LARGEADDRESSAWARE
        }
    }
}

效果图(MSVC2017-64BIT):

猜你喜欢

转载自blog.csdn.net/mccoy39082/article/details/82501665