2009-12-22 3 views
17

안녕하세요 세상과 같은 간단한 Qt 프로젝트를 배포하려고합니다.Qt-Creator를 사용하여 응용 프로그램을 배포하는 방법은 무엇입니까?

성공적으로 빌드하고 Qt-Creator에서도 실행할 수 있습니다. 그러나 일부 공유 라이브러리 오류로 인해 릴리스 폴더에서 직접 바이너리를 실행할 수 없습니다.

그래서 일부 필수 라이브러리를 qtcore.dll 및 qtgui.dll과 같은 릴리스 폴더에 복사하지만 여전히 실행할 수는 없습니다.

간단한 Qt 프로젝트를 어떻게 배치 할 수 있습니까? 그것을 배포하는 또 다른 단계가 있습니까?

+0

무엇이 오류 메시지입니까? –

+0

오류 메시지는 procedude의 시작 지점이 QtCore4.dll에서 발견되지 않습니다. 이 오류 메시지는 영어로 번역되어 있기 때문에 정확하지 않을 수 있습니다. – Brian

답변

19

당신은 또한는 MinGW 런타임 DLL (mingwm10.dll)를 배포 할 필요가

하나의 가능성은 디버그를 지은이며, Qt는 디버그 DLL은 이름이 지정됩니다. 이 파일은 Qt\2009.5\mingw\bin 디렉토리에 있습니다.

또한 응용 프로그램이 디버그 모드 또는 릴리스 모드로 컴파일되는지 여부에주의하십시오. 나는 hello world 타입의 어플리케이션과 Qt Creator로 테스트를 마쳤습니다. debug 폴더에서 libgcc_s_dw2-1.dll, mingwm10.dll, QtCored4.dllQtGuid4.dll이 복사되어 작동합니다. 디버그를 의미 DLL 이름에 d

에주의 : QtCored4.dll.

Qt 4.6: Deploying an Application in Windows을 참조하십시오. http://qt.nokia.com/doc/4.6/deployment-windows.html#static-linking : 당신은 당신이 Qt는 정적으로 여기 설명으로 컴파일해야와 Mingw/QT DLL을 함께 종속성이하지 않으려는 경우 Qt는 5의 경우, this page.

+0

해당 파일과 libgcc_s_dw2-1.dll을 복사했지만 다음 오류 메시지가 발생합니다. QtCore4.dll에서 procedude의 시작 지점을 찾을 수 없습니다.이 오류 메시지는 영어로 번역되어 있기 때문에 정확하지 않을 수도 있습니다 – Brian

+0

@brian> 어떤 버전의 Qt를 사용하고 있습니까?이 것이 LGPL 버전입니까? Qt 라이브러리의 디버그 및 릴리스 버전에주의를 기울였습니까? –

+0

감사합니다. 나는이 문제를 해결했다. Qt \ 2009.5 \ bin 디렉터리에있는 qtcore.dll 및 qtgui.dll을 사용했기 때문에 실패했습니다. Qt \ 2009.5 \ qt \ bin 디렉터리에있는 파일을 사용할 때 제대로 작동합니다. – Brian

1

누락 된 DLL을 확인하려면 종속성 워커 (http://dependencywalker.com/)를 실행 해보십시오.

일반적으로 Qt 설치가 해당 라이브러리를 경로에 추가 했으므로 Qt 라이브러리를 로컬 폴더로 옮길 필요가 없습니다. 다른

11

을 확인합니다. 또한, 단지 .pro 파일에이 줄을 추가 정적 링크를 사용할 수 있습니다

+4

이렇게 할 수있는 라이센스가 있다고 가정합니다. 정적 연결에는 상용 라이센스가 필요합니다. – drowe

+3

@Drowe : comercial 라이센스를 구입할 필요가 없습니다. LGPL/GPL 라이센스에 따라 소스 코드를 릴리스하면됩니다. – Seba

+1

@ 세바 - 정확하고 좋은 지적입니다. 내 부분에 잘못된 가정이있을 수 있습니다. – drowe

2

: 나는 here 성공적으로는 QT 작성자와 WINXP 테스트에서 해결책을 발견

QMAKE_LFLAGS += -static-libgcc 2.2.0

-6

당신의 Windows 디렉토리에 직접 모든 Qt dll을 복사하면 Qt dll 오류가 나타나지 않습니다 100 % 작동하고 간단합니다 nb : 요 Qt dll 폴더를 만들지 마십시오 ur windows 디렉토리에 그대로있는 그대로 게시하십시오.

+1

이것은 나쁜 생각입니다 ... 절대 응용 프로그램을 배포 할 때 창을 쓰지 말고이 방법을 사용하지 마십시오. 필요한 파일이 무엇인지 확인하고 응용 프로그램과 함께 배포하십시오. 오래된 질문/답변 .. 사람들에게 조언하는 것이 좋지 않습니다. – Mayhem

+0

이것은 나쁜 습관입니다. 앞서 언급했듯이 필요한 dll을 찾아 배포 중에 적절하게 추가합니다. –

관련 문제