나는 그것에 관한 모든 게시물을 읽었으며 아무 해결책도 Windows와 Linux에서 작동하지 않습니다. 나의 현재의 솔루션은 윈도우에서 꽤 잘 작동한다. 존재하지 않는다면, 디버그 나 릴리즈를위한 각각의 디렉토리를 만든다.qmake .pro 파일을 사용하여 디버그/출력 출력 dir을 변경하는 방법. 크로스 플래폼
이 폴더 중 하나에 내 모든 개체 파일 (* .o)을 만들려고합니다. Windows에서 나는 리눅스에서 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로 변경하면 오브젝트 파일이 계속 디버그 디렉토리로 이동되고 RELEASE 디렉토리가 생성되지 않습니다 (다시 qmake를 실행하려고 시도했습니다) . 두 구성에서 내 파일 (default_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
thx!
내가 한 말대로, 내 게시물을 결과와 함께 편집했습니다. 한 가지 더 질문, 바로 결과를 얻으려면 bash에서 make install을 실행해야합니까? QtCreator와 빌드 단계에서 어떻게 동일한 작업을 수행 할 수 있는지 알고 있습니까? – MaikoID
QtCreator의 빌드 프로세스에'make install '을 추가하는 한 가지 방법으로 내 대답을 업데이트했습니다. – jwernerny
@MaikoID 개정 된 qmake 파일에 두 가지 문제점이 있습니다. 먼저 "config_files._filename_"을 "config_files._files_"로 변경해야합니다. 두 번째는 이전이 아닌 config_files를 정의한 후에 INSTALLS 행이 있어야한다는 것입니다. – jwernerny