반응형

Ubuntu Linux 16.04에  미리 빌드되어 나오는 qt 설치 파일을 다운로드 받아 설치 후, 간단한 예제 코드를 작성하여 터미널에서 컴파일 하는 과정을 다루었습니다.





1. http://download.qt.io/archive/qt/ 에서 최신버전 디렉토리(글 작성하는 시점에서는 5.10)에 있는 리눅스용 설치파일을 다운로드 받습니다.  

미리 빌드된 설치파일은 리눅스 64비트용만 제공되고 있습니다. (qt-opensource-linux-x64-5.10.0.run )



다운로드 속도가 너무 느릴 경우에는 미러 사이트(http://download.qt.io/static/mirrorlist/ )에서 받으면 됩니다. 미러 사이트의 경우에는 다운로드 경로가 /qtproject/official_releases/qt/입니다.



예를 들어 http://mirror.bit.edu.cn 에서 5.10.0버전을 다운로드 받는다면 전체 경로는 아래처럼 됩니다.

http://mirror.bit.edu.cn/qtproject/official_releases/qt/5.10/5.10.0/



2. 패키지 리스트를 업데이트하고


webnautes@webnautes-pc:~$ sudo apt-get update




C/C++ 컴파일러와 C/C++를 위한 라이브러리, 헤더파일, make같은 유틸리티 도구 등이 포함되어 있는 build-essential 패키지를 설치합니다.


webnautes@webnautes-pc:~$ sudo apt-get install build-essential




기존에 설치된 Qt4 버전이 있다면 제거해줘야 합니다.


webnautes@webnautes-pc:~$ sudo apt-get purge --auto-remove libqt4-dev




다운로드 받은  qt 설치 프로그램을 실행가능하도록  chmod 명령으로 퍼미션을 변경한 후,  실행합니다.


webnautes@webnautes-pc:~$ cd 다운로드

webnautes@webnautes-pc:~/다운로드$ chmod +x qt-opensource-linux-x64-5.10.0.run

webnautes@webnautes-pc:~/다운로드$ ./qt-opensource-linux-x64-5.10.0.run




이제 설치 과정이 진행됩니다.  설명하지 않은 부분은 Next 버튼을 클릭하여 진행하면 됩니다.





QT 계정 로그인은 Skip버튼을 클릭하여 넘어가도 됩니다.





qt 설치 경로를 지정합니다.  따로 적어놓았다가 이후 PATH 지정시 사용합니다.





설치할 수 있는 구성요소는 다음과 같습니다. 디폴트는 qt 소스코드 빼고 진행되며 1기가 정도 필요합니다.

Qt Creator는 qt에 포함되어 배포되는 통합 개발 환경( IDE)입니다.

미리 컴파일된 Android x86과 Android ARMv7을 추가로 설치해보았습니다.





3. 설치완료 후, 편집기로 사용자 홈디렉토리에 있는 .bashrc 파일을 수정합니다.


webnautes@webnautes-pc:~$ nano ~/.bashrc



.bashrc 마지막 줄에 아래 내용을 추가합니다. 파란색 부분은 앞에서 지정했던 qt 설치 경로입니다. qt 버전이 다른 경우에는 경로가 약간 차이가 있을 수 있습니다.


export PATH=/home/webnautes/Qt5.10.0/5.10.0/gcc_64/bin/:/home/webnautes/Qt5.10.0/Tools/QtCreator/bin/:$PATH




패스 환경 추가한 것을 적용시키고


webnautes@webnautes-pc:~$ source ~/.bashrc




qmake를 터미널에서 실행시켜 현재 활성화된 qt 버전을 확인해봅니다.

qt 버전이 다르다면  apt-get install 명령으로 설치된 qt 패키지가 활성화되어 있는 것입니다.  

apt-get remove 명령으로 qt 패키지를 제거해야 합니다.


webnautes@webnautes-pc:~$ qmake -version

QMake version 3.1

Using Qt version 5.10.0 in /home/webnautes/Qt5.10.0/5.10.0/gcc_64/lib




4. qtcreator를 사용하지 않고 터미널에서 간단한 qt 예제 코드를 컴파일하는 과정을 다룹니다.


4-1. 프로젝트 파일들을 저장할 디렉토리를 생성하고 이동합니다.


webnautes@webnautes-pc:~$ mkdir SimpleQtExample

webnautes@webnautes-pc:~$ cd SimpleQtExample




편집기로 새로운 cpp 파일을 열어서


webnautes@webnautes-pc:~/SimpleQtExample$ nano simple.cpp




다음 코드를 입력합니다. 윈도우를 하나 띄우고 타이틀바에 "Simple example"이라는 문자열을 출력합니다.


#include <QApplication>
#include <QWidget>

int main(int argc, char *argv[]) {

   QApplication app(argc, argv);

   QWidget window;

   window.resize(250, 150);
   window.setWindowTitle("Simple example");
   window.show();

   return app.exec();
}




현재 프로젝트 디렉토리에는 소스코드만 있습니다.


webnautes@webnautes-pc:~/SimpleQtExample$ ls

simple.cpp




4-2. qmake -project 명령을 사용하면 qt 프로젝트 파일을 생성해줍니다.

qt 프로젝트 파일의 정보를 가지고 Makefile을 만들게 됩니다.


webnautes@webnautes-pc:~/SimpleQtExample$ qmake -project




프로젝트 파일은 확장자가 pro인 파일이 자동으로 생성됩니다.



webnautes@webnautes-pc:~/SimpleQtExample$ ls

SimpleQtExample.pro  simple.cpp




4-3.  qt 프로젝트 파일이 생성될 때, qt 코드에서 사용중인 qt 모듈 이름이 자동으로 추가되지 않습니다.  

qt 프로젝트 파일을 열어서 사용중인 qt 모듈 이름을 추가해줘야 합니다.



사용 중인 qt 모듈 이름을 찾는 방법입니다.

 

예제 코드에서 인클루드하고 있는 QApplication과 Qwidget 찾아보면  두 개 모두 QtWidgets 디렉토리에 포함되어 있습니다.  

사용하고 있는 모듈 이름은 디렉토리 이름에서 Qt를 빼고 소문자로 변환한 widgets가 됩니다.


webnautes@webnautes-pc:~/SimpleQtExample$ find ~ | grep QApplication
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QApplicationStateChangeEvent
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QApplication
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtGui/QApplicationStateChangeEvent
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QApplication
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QApplicationStateChangeEvent
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QApplication
webnautes@webnautes-pc:~/SimpleQtExample$ find ~ | grep QWidget
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetSet
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetList
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetMapper
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetData
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetAction
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidget
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetItem
/home/webnautes/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetItemV2
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetSet
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetList
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetMapper
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetData
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetAction
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidget
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetItem
/home/webnautes/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetItemV2
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetSet
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetList
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetMapper
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetData
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetAction
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidget
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetItem
/home/webnautes/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetItemV2




다음과 같이 SimpleQtExample.pro 파일에  widgets를 추가해줍니다.  

core와 gui는 디폴트로 추가되어 있으므로 적지 않아도 됩니다.


######################################################################
# Automatically generated by qmake (3.1) Sat Dec 30 12:42:33 2017
######################################################################

QT += widgets
TEMPLATE = app
TARGET = SimpleQtExample
INCLUDEPATH += .

# The following define makes your compiler warn you if you use any
# feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

# Input
SOURCES += simple.cpp




4-4. qmake 명령으로 Makefile을 생성합니다.

Makefile은 다음 두 가지 과정을 자동화하기 위해 필요한 것들을 기술하고 있습니다.


  • 컴파일러로 소스 코드 파일을 컴파일하여 오브젝트 파일을 생성

  • 링커를 사용하여 오브젝트 파일과 라이브러리 파일을 결합하여 실행 파일을 생성



webnautes@webnautes-pc:~/SimpleQtExample$ qmake




Makefile이 프로젝트 폴더에 생성됩니다.


webnautes@webnautes-pc:~/SimpleQtExample$ ls

Makefile  SimpleQtExample.pro  simple.cpp




4-5. make 명령은  Makefile에 기술된대로 컴파일 및 링크를 실행합니다.


webnautes@webnautes-pc:~/SimpleQtExample$ make

g++ -Wl,-O1 -Wl,-rpath,/home/webnautes/Qt5.10.0/5.10.0/gcc_64/lib -o SimpleQtExample simple.o   -L/home/webnautes/Qt5.10.0/5.10.0/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread




중간 결과물인  확장자 .o인 오브젝트 파일과 프로젝트 디렉토리와 동일한 이름을 갖는 실행파일이 생성되었습니다.  

문제 발생시 5번을 참고하세요.


webnautes@webnautes-pc:~/SimpleQtExample$ ls

Makefile  SimpleQtExample  SimpleQtExample.pro  simple.cpp  simple.o




이제 실행시켜 보면 작은 윈도우가 띄어지고 타이틀바에 "Simple example" 이라는 문자열이 출력됩니다.


webnautes@webnautes-pc:~/SimpleQtExample$ ./SimpleQtExample






5. 참고 - make 명령시 다음과 같은 에러가 발생할 수 있습니다.


5-1. 헤더파일을 못찾거나("no such file or directory")  링크 에러가 나는 것은(undefined reference)  해당 qt 코드에서 사용중인 qt 모듈이름이  qt 프로젝트 파일에 제대로 추가 안되서 발생합니다.  

4-3을 참고하셔서 에러나는 qt 모듈 이름을 찾아보시면 됩니다. ( 보통 에러 메시지에서 Q로 시작되는 단어입니다.)


fatal error: QApplication: 그런 파일이나 디렉터리가 없습니다

또는

fatal error: QApplication: no such file or directory



undefined reference to `QApplication::~QApplication()'




5-2. OpenGL 관련 링크 에러가 난다면


/usr/bin/ld: cannot find -lGL



다음 패키지들을 설치해주면 됩니다.


webnautes@webnautes-pc:~/SimpleQtExample$ sudo apt-get install mesa-common-dev libglu1-mesa-dev



다시 make 명령을 해보면 문제 없이 실행파일이 생성됩니다.




5-3.  보통 make 명령은 소스 코드에 변화가 없으면 컴파일 및 링크 과정이 진행되지 않기 때문에 보여지는 메시지입니다.

qt 프로젝트 파일을 수정한 후에도 나타날 수 있습니다.



webnautes@webnautes-pc:~/SimpleQtExample$ make

make: 'first'을(를) 위해 할 일이 없습니다.




make clean 명령으로 기존에 생성됬던 실행파일과 오브젝트 파일을 지우고 다시 make 명령을 해야 합니다.


webnautes@webnautes-pc:~/SimpleQtExample$  make clean

rm -f moc_predefs.h

rm -f simple.o

rm -f *~ core *.core

webnautes@webnautes-pc:~/SimpleQtExample$ make





최초작성 2017. 3. 24

최종작성 2017. 12. 30



관련 포스트


Ubuntu 18.04에 Qt 5.14 개발환경 구축

https://webnautes.tistory.com/1413



반응형

'개발 환경 > Qt' 카테고리의 다른 글

Ubuntu 18.04에 Qt 5.14 개발환경 구축  (6) 2020.04.17
Ubuntu 16.04에 Qt 5.10 개발환경 구축  (27) 2017.12.30

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

  1. QT 2017.03.27 16:54

    설치는 했느데

    qmake -version으로 버전 확인해 보니

    새로 설치된 QT버전으로 적용이 안되고 4.8로 되고

    Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu 라고 경로 가 뜨는데 저는 /home/user/여기에 설치를 했는데.. 경로때문에 그런건가요?ㅠ

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.03.27 19:08 신고

      기존에 설치된 QT패키지를 삭제하셔야 합니다....

      다음 명령으로 qt관련 패키지를 검색한 다음
      apt --installed list | grep qt

      다음 명령으로 지워주세요.
      apt-get remove 패키지이름

      정상적이라면 qmake -version 명령으로 직접 설치된 경로가 나와야 합니다..

  2. QT 2017.03.27 17:46

    Error:(144) undefined reference to `sb'
    Error:(144) undefined reference to `QStatusBar::showMessage(QString const&, int)' 이런 에러가 뜨는데..

    extern QStatusBar *sb; 이렇게 선언해 줬고 그에 맞는 #include <controlcenter.h>도 선언 해 줬는데

    왜 저런 에러가 뜨는지.. 근데 extern QStatusBar *sb를 어디서 extern해서 가져왔는지를 모르겠네요..

    http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit 여기서

    USB통신으로 Android에서 board로 firmware img설치 파일 예제 가져왔는데 예제 폴더를 다 뒤져도 QStatusBar는 없네요..

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.03.27 19:14 신고

      #include <QStatusBar>를 추가해보세요.

    • QT 2017.03.28 09:40

      QStatusBar가 QtGui/에 있었네요

      근데 선언해줘도 똑같은 에러가 뜨는데..ㅠ

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.03.28 09:56 신고

      프로젝트이름.pro에 QT += widgets 추가했나요

  3. QT2 2017.06.13 09:38

    아랫분과 동일하게 버전이 두개라 4.8.7로 버전이 인식되는데
    삭제가 잠겨있어 삭제가 안되서 그런데 삭제하는 방법을 도움 받을 수 있을까요??
    qt5와 qt4가 설치 되어 있는데
    qt4폴더를 지우거나 apt-get remove를 이용해서 삭제 할려 했지만
    두개다 삭제가 되지않아 질문드립니다.
    qtcreater를 실행시켜 4.대 버전을 삭제해도 파일이 남아 있어서 그런가 5 대가 인식이 안됩니다 ㅠㅠ
    초보라 어떻게 해야될지 모르겠네요

  4. QT2 2017.06.13 09:47

    apt-get remove q
    qdbus qtcore4-l10n
    qpdf qtdeclarative5-dev
    qt4-linguist-tools qtdeclarative5-private-dev
    qt4-qmake qtmultimedia5-dev
    qt5-qmake qtscript5-dev
    qt-at-spi qtscript5-private-dev
    qtbase5-dev qttools5-dev
    qtbase5-dev-tools qttools5-dev-tools
    qtbase5-private-dev qttools5-private-dev
    qtchooser qttranslations5-l10n
    이렇게 패키지가 뜨는데 qt4와 관련된 것들을 지울려고 하면 잠겨있다고 삭제가 되질 않습니다 ㅠㅠ
    sudo로 관리자권한을 줘도 안되네요 ㅠㅠ

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.06.14 09:33 신고


      혹시 아래 같은 메시지가 보이나요?
      E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)


      혹시 데스크톱 환경에서 패키지 업데이트 중은 아닌가 확인해보시고 아니라면 아래처럼 진행하세요.


      다음 명령으로 apt-get 명령을 수행중인 프로세스ID를 찾은 다음..
      ps -aux | grep 'apt-get'


      검색된 프로세스ID를 아래 process-id 자리에 적어서 해당 프로세스를 중지 시키세요.
      검색되지 않았다면 안해도 됩니다.
      sudo kill -9 process-id


      마지막으로 다음 명령으로 다음 파일을 제거하세요
      sudo rm -rf /var/lib/dpkg/lock


      이제 다시 sudo apt-get install 패키지이름 명령으로 설치를 진행해보세요.



  5. KIHO 2018.01.06 16:40

    예제대로 따라오면서 실행을 시켰는데

    세그먼트 폴트가 나타나네요. 이 경우 어떻게 해야하나요?

    환경은 우분투 16.04.2 입니다.

    패스에 등록된 버전 또한 동일하구요.

  6. Favicon of https://jeongsu.tistory.com BlogIcon jeongsu 2018.01.31 20:28 신고

    와 정말 감사합니다..



    완벽한 포스팅인것 같아요

    그대로 따라하니까 잘 됩니다. 감사합니다.

  7. QT 2018.02.01 17:20

    사용중인 모듈을 찾는 부분에서
    find ~ | grep QAppication , find ~ | grep QWidget
    명령어를 쓰셨잖아요 그 결과에서 어떻게 사용하고 있는 모듈 이름이 widget인지 알 수 있는건가요??

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.02.01 17:32 신고

      검색결과를 보면 다음처럼 보이는 대요.

      QtWidgets/QApplication
      QtWidgets/QWidget

      소스코드에서 인클루드하고 있는 QApplication과 QWidget이 QtWidgets에 포함된걸 알 수 있습니다.

      모듈이름 적을땐 Qt제거하고 소문자로 widgets라고 적어주면 됩니다.

    • QT 2018.02.01 17:36

      저는 저렇게 안나오고
      cgh@cgh-PMBSB09A-Samsung-DeskTop:~/QtProject$ find ~ | grep QApplication
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QApplicationStateChangeEvent
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QApplication
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QApplicationStateChangeEvent
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QApplication
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtGui/QApplicationStateChangeEvent
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QApplication
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtGui/QApplicationStateChangeEvent
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QApplication
      cgh@cgh-PMBSB09A-Samsung-DeskTop:~/QtProject$ find ~ | grep QWidget
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetSet
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetMapper
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetList
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetAction
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidget
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetData
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetItem
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetItemV2
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetSet
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetMapper
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtGui/QWidgetList
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetAction
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidget
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetData
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetItem
      /home/cgh/Qt5.10.0/5.10.0/android_armv7/include/QtWidgets/QWidgetItemV2
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtGui/QWidgetSet
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtGui/QWidgetMapper
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtGui/QWidgetList
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QWidgetAction
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QWidget
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QWidgetData
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QWidgetItem
      /home/cgh/Qt5.10.0/5.10.0/Src/qtbase/include/QtWidgets/QWidgetItemV2
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetSet
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetMapper
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtGui/QWidgetList
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetAction
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidget
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetData
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetItem
      /home/cgh/Qt5.10.0/5.10.0/android_x86/include/QtWidgets/QWidgetItemV2

      이런식으로 싸그리 나와버려요..

    • webnautes 2018.02.01 18:19

      해당 문자열로 시작하는 문자열도 많고 안드로이드용도 같이 설치되서 결과가 많이 나옵니다.

      이 결과에선 두번째 줄에 있네요..

      cgh@cgh-PMBSB09A-Samsung-DeskTop:~/QtProject$ find ~ | grep QApplication
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QApplicationStateChangeEvent
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QApplication

      여기에선 5번째 줄에 있습니다.
      cgh@cgh-PMBSB09A-Samsung-DeskTop:~/QtProject$ find ~ | grep QWidget
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetSet
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetMapper
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtGui/QWidgetList
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidgetAction
      /home/cgh/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets/QWidget

    • QT 2018.02.02 09:06

      안드로이드용 qt를 전부 제거하면 되는건가요?? 저렇게 리스트가 많이 나와서 어떤게 어떤건지 감을 못잡아서 포스팅대로야 하면 알겠는데 나중에 혼자할땐 알 수 없을 것 같아서요..

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.02.02 09:27 신고

      gcc_64항목에서만 검색한 헤더파일 이름을 찾으시면 되요

    • QT 2018.02.02 09:29

      아하! 감사합니다!

  8. Sim 2018.09.17 23:22

    bash: ./qt-opensource-linux-x64-5.10.0.run: cannot execute binary file: Exec format error
    이런 에러 뜨는데 원인알수있을까여??

  9. virginQT 2018.10.29 17:48

    본문 내용 그대로 했더니 아주 잘 됩니다.
    아주 좋은 내용입니다. 감사합니다.

  10. neu44 2019.10.21 15:52

    QT 처음 실행하는 유저입니다. 본문대로 실행하였는데 단 "미리 컴파일된 Android x86과 Android ARMv7을 추가로 설치
    " 이부분은 언체크 했습니다. 체크하고 설치하니 설치가 안되더라구요. 그래서 정상 설치 후 예제 테스트를 하였는데.
    Makefile:246: 'qt_test' 타깃에 대한 명령이 실패했습니다. 가 나오더라구요.
    collect2: error: ld returned 1 exit status 가 에러 사유인거 같은데 뭐가 문제인지 알수 있을까요?

    Makefile의 위치 내용은
    $(TARGET): $(OBJECTS)
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
    입니다.
    SOURCES = qt_test.cpp
    OBJECTS = qt_test.o
    QMAKE_TARGET = qt_test
    DESTDIR =
    TARGET = qt_test

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.10.21 17:33 신고

      QT 버전이 달라져서 발생한 문제로 보입니다.

      포스트와 같은 버전을 사용해보세요..

      새로운 버전으로 테스트 해보려면 좀 시간이 걸릴듯합니다.

  11. nue44 2019.10.21 18:21

    메시지들을 좀더 살펴보니 위에 언급한 OpenGl 문제여서 작성해 주신대로 작업하여 기본 테스트를 실행해 보았습니다. 감사히 잘 보았습니다. 그런데 혹시 QT에 관한 기본적인 공부는 어디에서 참조하거나 볼수 있을까요? QTCreator를 안쓰고 직접 Cpp만 활용하여 프로그램을 짜보고 싶습니다.

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.10.21 22:20 신고

      아 에러메시지가 더 있었군요. 해결되서 다행입니다.

      오래된 문서이긴 한데 아래 링크와
      http://zetcode.com/gui/qt5/

      qt 공식 문서를 같이 보세요

+ Recent posts