2015-01-02 2 views
3

Qt Creator에서 프로젝트를 만들고 있는데 중간 .obj 파일의 위치가 중요하지 않은 동안 최종 실행 파일을 많은 종속성 DLL 등이있는 특정 디렉토리에 놓고 실행하는 것이 중요합니다. 찾을 수 있습니다.Qt Creator가 실행 파일을 "디버그"서브 디렉토리에 저장하는 것을 어떻게 중지합니까?

그래서 Qt Creator에서 '그림자 빌드'옵션을 선택하고이 디렉토리의 경로를 지정합니다.

는 항상 무엇을 발견하지만, 대신에이 디렉토리에 투입되는 최종 실행 파일이 항상 그때하려고 할 때, 때문에 나에게 아무 소용이없는 ...

the_Directory_I_Actually_Want/debug 

에 배치되어 있다는 점이다 Qt Creator 내에서 프로그램을 실행하거나 디버깅하기 위해 의존하는 DLL이 모두 the_Directory_I_Actually_Want이고 /debug 하위 디렉토리가 아니기 때문에 프로그램이 시작되지 않습니다.

나는 the_Directory_I_Actually_Want 내 .PRO 파일 내에서 DESTDIR 설정을 시도했습니다, 나는 the_Directory_I_Actually_Want/projectName 내 .PRO 파일 내에서 목표를 설정하는 시도했습니다, 나는의 일부 다양한 옵션과 주위 faddling 시도했습니다 '키트'구성, 그리고 아무 것도 나를 제어 할 수있게하는 것 같습니다.

이렇게하는 방법이 있습니까, 아니면 Qt Creator의 혜택을 위해 빌드 시스템의 나머지 부분을 변경해야합니까?

답변

0

Windows에서 대상 DLL 또는 EXE를 복사 할 위치를 지정하는 DLLDESTDIR 변수를 사용할 수 있습니다. 그냥 .PRO이 추가 :

CONFIG(release, debug|release): DLLDESTDIR += $$PWD/../exec 

을 리눅스에 당신이 함께 TARGET을 연결 한 후 실행할 명령을 포함 QMAKE_POST_LINK 변수를 사용할 수 있습니다. 그래서 같은 것입니다 :

CONFIG(release, debug|release): QMAKE_POST_LINK += $$quote(cp project $$PWD/../exec) 
다음

project 당신이 프로그램을 작업 디렉토리가 아닌 exec 한 단계 위라는 디렉토리에 실행 가능한 바이너리를 복사합니다 TARGET = project

이들에 의해 제공 대상 파일의 이름입니다. 당신은 임의의 경로를 가질 수 있습니다.

+0

지금까지 이러한 제안 중 하나를 저에게 적용 할 수 없었습니다. .exe 파일은 내가 요청한 디렉토리의/debug 서브 디렉토리에 있습니다. 흥미롭게도 DLLDESTDIR을 사용하여 존재하지 않는 디렉터리를 지정하면 디렉터리가 만들어 지지만 비어있는 상태로 유지되고 .exe 파일은 일반적인 위치에 남아 있습니다. –

+1

단순히 DESTDIR을 설정하는 원래의 방식은 qmake를 명시 적으로 실행 한 후에 만 ​​정상적으로 작동했습니다. 나는 Qt Creator의 "Build"메뉴로 가서 "Clean All"을 선택하고 "Rebuild All"을 선택하면 전체 프로젝트가 업데이트 될 것이라고 생각했지만, 아쉽게도 그렇지 않았습니다. "Clean All"을 실행 한 다음 "QMake를 실행"하고 "Build All"을 수행해야했습니다. 그렇다면 내가 바라는 바른 행동을하고 있습니다. –

+0

@EosPengwern 릴리스 모드에서 프로젝트를 빌드하고 'DLLDESTDIR'접근 방식이 작동하지 않습니까? – Nejat

관련 문제