如何使用qmake .pro文件更改Debug / Release输出目录。跨平台

| 我已经阅读了有关它的所有文章,并且所有解决方案都无法在Windows和Linux中使用。我当前的解决方案在Windows中运行良好,如果不存在,则创建相应的目录进行调试或发布。 我想在这些文件夹之一中创建我的所有目标文件(* .o)。在Windows中,我在Linux上实现了这一点,我的DESTDIR变量为空。 = |
TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += Config.h \\
           keyboard.h \\
           keyboardgui.h \\
           keyboardkey.h \\
           Log.h \\
           main.h \\
           mainwindow.h \\
           Settings.h
FORMS += mainwindow.ui
SOURCES += Config.cpp \\
           keyboard.cpp \\
           keyboardgui.cpp \\
           keyboardkey.cpp \\
           Log.cpp \\
           main.cpp \\
           mainwindow.cpp
RESOURCES += Resources.qrc

OTHER_FILES += \\
    default_layout.kl


# se for Windows
win32 {
# inclui a lib para acessar o DMI
LIBS += -lqaxcontainer
}

# Habilita a opcao de copia de diretorios
CONFIG += copy_dir_files

Debug:DESTDIR = debug
Release:DESTDIR = release

# copia a pasta configuracao para o diretorio de saida
win32 {
 QMAKE_POST_LINK +=  copy /Y default_layout.kl $$DESTDIR
}
else {
 QMAKE_POST_LINK +=  cp -a default_layout.kl $$DESTDIR 
}
我尝试使用INSTALL var,但没有成功。创建了调试目录并将所有目标文件放置在此处,但是当我将编译模式更改为RELEASE时,目标文件将继续移至debug目录,并且未创建RELEASE目录(我已尝试运行qmake再次)。在这两种配置中,我的文件(default_layout和layout)都不会复制到输出目录中。
# Habilita a opcao de copia de diretorios
CONFIG += copy_dir_files

release:DESTDIR = release
release:OBJECTS_DIR = release/
release:MOC_DIR = release/
release:RCC_DIR = release/
release:UI_DIR = release/

debug:DESTDIR = debug
debug:OBJECTS_DIR = debug/
debug:MOC_DIR = debug/
debug:RCC_DIR = debug/
debug:UI_DIR = debug/

INSTALLS += config_files
config_files.path = $$DESTDIR
config_files.filename = default_layout.kl
config_files.filename += layout.kl
谢谢!     
已邀请:
我认为它在Windows而不是Linux上运行的原因是因为您将大写的“ Debug”和“ Release”大写。我发现的所有示例都使用小写字母(请参阅qmake文档页面上本节的第二个示例。) 我要问的另一件事是DESTDIRS的使用。 DESTDIRS告诉qmake您要将目标放在哪里。如果要直接控制仅将目标文件放在何处,则应使用OBJECT_DIRS。 我个人使用qmake \的INSTALLS关键字将多余的文件复制到需要的地方。它确实意味着同时执行
make
make install
,但确实会产生更多与平台相关的代码。 如果我假设您想要TARGET和\'debug \'或\'release \'中的对象,则可以这样做:
# Habilita a opcao de copia de diretorios
debug {
    DESTDIR = debug
    OBJ_DIR = debug
}
release
{
    DESTDIR = release
    OBJ_DIR = release
}

# copia a pasta configuracao para o diretorio de saida
config_files.path = $$DESTDIR
config_files.files = default_layout.kl
INSTALLS += config_files
如果您正在运行QtCreator,则可以通过选择左侧工具栏中的\“ Projects \”图标将
make install
步骤添加到建筑物设置中。接下来,选择\“ Add Build Step \”,\“ Make \”,并将\“ Make arguments \”设置为
install
。您将必须为每个构建配置执行此操作。     

要回复问题请先登录注册