• 카테고리

    질문 & 답변
  • 세부 분야

    데스크톱 앱 개발

  • 해결 여부

    미해결

QT로 구현한 프로그램 실행관련 및 추가질문

22.07.14 11:33 작성 조회수 841

1

강사님 안녕하세요 

몇가지 질문을 드리고자 합니다. 

질문 1 

QT를 이용하여 Debug와 release 모드로 컴파일 하여 exe 실행파일이 만들어 졌습니다. 

해당 실행파일을 QT creater 안에서 실행하는 것이 아니라. exe 파일 만으로 실행을 하려고 하니 

QT6Widgets.dll , libgcc_s_seh-1dll 등 여러가지 dll파일이 없어서 코드실행을 할 수 없다고 합니다. (아래 그림 참조)

프로그램을 만들어 실행파일만 가지고 다른 PC(QT Creater가 설치되어 있지 않은) 에서 실행하기 위해서는 

어떻게 해야 할까요?

 

질문 2

 '설치판 제작을 위한 프로젝트 예제 구현' 강의를 따라하면서 analogh clock라는 프로그램을 설치하였는데 

만약 프로그램을 지우고 싶다면 어떻게 해야 하나요?

 

질문3

 라이센스 관련 질문입니다. 영리적인 목적으로 프로그램을 만들시 커머셜 라이센스가 필요하다고 하셨는데 

찾아보니 1년간 갱신을 하는 것 같습니다.

만일 1년간 라이센스 비용을 내고 프로그램을 개발완료하였다면 해당 프로그램을 계속 영리목적으로 판다고 하였을때 라이센스를 계속 갱신하여야 하나요?  구현은 1년 안에 끝났는데  프로그램을 판매 배포 하였는데, 구현한 프로그램을 지속적으로 배포하려면 저는 계속 라이센스를 구매해야 하는 건가요? 

 

이상입니다. 

 

 

 

답변 3

·

답변을 작성해보세요.

1

안녕하세요. 김재우님, 

Qt 는 전체가 LGP, GPL , Qt Commercial 인지 라이선스가 하나로만 되어 있는것이 아니라 모듈별로 라이선스가 달라져요. 예를들어서 프로젝트에서 Qt Network 모듈과 Qt Charts 모듈을 예를 들자면,

Qt Network 모듈은 LGPL, GPL, Commercial 중에 하나를 선택할 수 있구요. Qt Chart 인 경우는 GPL과 Qt Commercial 만 사용할 있어요.

만약 재우님께서 LGPL을 쓰고 싶다면, Qt에서 사용하는 모듈이 모듀 LGPL 인지 확인해보실 필요가 있습니다. 

특정 모듈이 LGPL 적용할 수 있는지 그렇지 않은지 확인하기 위해서 Qt 공식 홈페이지 도움말 또는 Qt Assistant 에 각 모듈이 LGPL 사용가능한지 아래 그림처럼 확인이 가능합니다.

 

 

 

 

김재우님의 프로필

김재우

질문자

2022.07.15

답변 감사합니다. 

1

김재우님의 프로필

김재우

질문자

2022.07.15

답변 감사합니다. 추가로 라이센스 관련 질문 드리자면 

이래 캡쳐글 처럼 오픈소스 라이센스로도 개발이나 판매가 가능할 것 같은데 요 

Qt를 사용하여 프로그램을 개발할때 Qt 라이브러리를 수정하지 않는다면 어떤 제품을 만들어도 괜찮은 건가요?

그리고 소스코드 공개도 필요 없는지요? 임베디드 프로그램을 개발할때도 마찬가지로 적용이 될런지요?

Qt 쪽에 문의하고 싶지만 코리아 담당 전화번호를 찾기 어렵네요 

0

아녕하세요. 김재우님, 

 

[질문1 답변] 

Qt에서는 windeployqt.exe 파일을 제공합니다. 이 프로그램은 Qt 가 설치된 bin 디렉토리에 가시면 있습니다. 

만약 msvc 인경우 mingw_64 가 아닐 수 있습니다.

 

이파일을 아래와 같이 실행하면 됩니다. 

 

windeployqt --release --qmldir analog_clock.exe

 

 

--release 는 release 모드를 뜻합니다. 만약 debug 모드이면 --debug 옵션을

사용하시면 됩니다. 그리고 만약 qml로 개발된 프로젝트의 경우 qml폴더를 지정해 줘야 합니다.

 

OS가 윈도우인 경우 windeployqt.exe 이지만 Mac 인 경우 아마 macdeployqt 이고

리눅스인 경우 linuxdeployqt 로 되어 있을겁니다. 

 

위와 같이 하면 실행파일이 위치한 곳에 자동으로 라이브러리를 찾아서 실행파일이 있는 위치에 

복사해 줍니다. 

 

이 방법이외에 dependencywalker 라는 무료 프로그램이 있는 이 프로그램을 이용하면

필요한 라이브러리가 무엇인지 리스트를 볼수는 있지만 자동으로 찾아주지는 않습니다. 

 

[질문2 답변]

 

프로그램을 지우고 싶다면, 설치된 디렉토리에 가시면 MaintenanceTool.exe 도 합께 설치되어

있습니다. 이 프로그램을 이용해 삭제 및 추가 수정을 하실 수 있습니다.

 

[질문3 답변]

 

라이선스는 AD 와 DC 라이선스가 있습니다. AD(android, iOS) 는 mobile 과 dektop(window, linux, mac)

인경우 AD 라이선스에 해당하구요.

 

임베디드 분야이면 DC 라이선스를 구매하시면 됩니다. 

 

구입하면 1년 까지 사용할 수 있고, 1년 후에는 갱신해줘야 하는데 갱신 비용은 최초 구입비용에 1/10 인가 아니면 2/10 인가

그런데요. 정확하지는 않습니다. 

 

만약 갱신해야 하는데 시기를 놓치는 경우 최초 구입 비용으로 다시 구매해야 하는 걸로 알고 있는데요. 여기에 대해서는 정확하지 않으니 확인이 필요합니다. 

 

그리고 라이선스와 런타임라이선스는 따로 있는데요. 예를들어 SW제품 또는 하드웨어가 포함된 제품을 10개 생산하고 판다면

1개당 런타임 라이선스 cost 가 따로 있습니다. 개당 1달인지 2달러 인지 정확하지는 않는데요. 요것도 라이선스를

구매하시는 곳에 확인해 보실 필요가 있을것 같습니다.