首页 文章

如何告诉qmake不要创建文件夹?

提问于
浏览
3

我想配置我的qmake所以它将使我的可执行文件在./build/debug(或发布)下 . 我用以下代码成功完成了:

CONFIG(debug, debug|release) {
    DESTDIR = ./build/debug
    TARGET = mShareLibd
}

CONFIG(release, debug|release) {
    DESTDIR = ./build/release
    TARGET = mShareLib
}

除了qmake仍然在项目的根目录中创建两个文件夹(即“debug”和“release”)之外,一切都运行良好 - 所以我最终得到了“build”,“debug”(总是空的)和“release” “(总是空的)文件夹 .

如何告诉qmake不要创建这两个文件夹?我在QtCentre论坛上做了这个问题(here是链接),但提供的方式没有更合理的方法 - 比如只写一个告诉"qmake, don't create this folders"的命令?

谢谢,

Momergil

EDIT 比尔让我在这里复制并粘贴我的.pro文件 . 这是恢复版本(大多数头文件和源文件不包括在内)

#qmake defines
MSHARE_REPO = $${PWD}/..
MSHARE_COMMON = $${MSHARE_REPO}/Common
MSHARE_LIB = $${MSHARE_REPO}/mShareLib
MLOGGER = $${MSHARE_REPO}/../Classes/mLogger

#inclusion
QT += core gui network multimedia sql

qtHaveModule(printsupport): QT += printsupport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += qwt
#CONFIG *= precompile_header
#PRECOMPILED_HEADER = stdafx.h
#HEADERS += stdafx.h

TARGET = mShare
TEMPLATE = app

VER_MAJ = 0
VER_MIN = 0
VER_PAT = 7
VERSION = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}

INCLUDEPATH += MSHARE_REPO \
               MSHARE_COMMON \
               C:\Qt\Qwt-6.1.0\include

LIBS += $${PWD}/SMTPEmail.dll

DEFINES += MGENERALDEFINES_GUI \
           MGENERALDEFINES_DEBUG \
           MGENERALDEFINES_GENERAL \
           QWT_INCLUDED \
           APP_VERSION=\\\"$$VERSION\\\"

win32 {
    LIBS += -lpsapi

    CONFIG(debug, debug|release) { #debug {
        LIBS += C:/Qt/Qwt-6.1.0/lib/qwtd.dll \
            $${MLOGGER}/build/debug/mLogger.dll \      #$${MLOGGER}/debug/mLoggerd.dll \
            $${MSHARE_LIB}/build/debug/mShareLibd.dll
        DEFINES += DEBUG
        DESTDIR = ./build/debug
    }

    CONFIG(release, debug|release) { #release {
        LIBS += C:/Qt/Qwt-6.1.0/lib/qwt.dll \
            $${MLOGGER}/build/release/mLogger.dll \
            $${MSHARE_LIB}/build/release/mShareLib.dll
        DEFINES += RELEASE \
               QT_NO_DEBUG \
               QT_NO_DEBUG_OUTPUT
        DESTDIR = ./build/release
    }
} # win32

#others
MOC_DIR     = $${DESTDIR}/.moc
OBJECTS_DIR = $${DESTDIR}/.obj
UI_DIR      = $${DESTDIR}/.ui
RCC_DIR     = $${DESTDIR}/.rcc

########################################################################

HEADERS  += AppDefines.hpp \
    mreadwrite.hpp \
    system/appbrain.hpp \
    ...

SOURCES += main.cpp \
    mreadwrite.cpp \
    system/appbrain.cpp \
    ...

FORMS += \
    interface/entracedialog.ui \
    interface/validationdialog.ui \
    ...

OTHER_FILES += Files/CandlePatternProbabilities.txt \
    Project_Files/Readme.txt \
    ...

RESOURCES += \
    Icons.qrc \
    Setups.qrc \
    GeneralFiles.qrc

RC_FILE = icone.rc

#TRANSLATIONS += DEFAULT_THEME_PATH/translations/app_pt.ts \
#                DEFAULT_THEME_PATH/translations/app_de.ts

1 回答

  • 3

    我想通过查看QMake的源代码找到了解决方案:设置“PRECOMPILED_DIR”变量 .

    它适用于Qt 5.由于QMake源代码没有太大变化,我认为它也适用于Qt 4 .

    CONFIG(debug, debug|release) {
        DESTDIR = ./build/debug
        PRECOMPILED_DIR = ./build/debug
        TARGET = mShareLibd
    }
    
    CONFIG(release, debug|release) {
        DESTDIR = ./build/release
        PRECOMPILED_DIR = ./build/release
        TARGET = mShareLib
    }
    

相关问题