[일단완료]왕초보 질문! Hello World 프로그램 컴파일 에러! 왜?

jomsalza의 이미지

그 유명한 Hello World 프로그램입니다만
왕초보인 저에게는 너무나 어렵네요.

-소스는 아래와 같구요.
#include QApplication
#include QLabel
-- 참고 : 꺽새는 생략 했습니다. 이건왜 없어지죠?

int main(int argc, char **argv)
{
QApplication app(argc,argv);
QLabel *hello = new QLabel("Hello Qt" "",0);
hello->show();
return app.exec();
}

-컴파일 에러 메세지는 다음과 같습니다. 선배님들의 조언을 부탁드립니다.
dreamer@dreamer-desktop:~/바보$ qmake -project
dreamer@dreamer-desktop:~/바보$ qmake
dreamer@dreamer-desktop:~/바보$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o hello.o hello.cpp
hello.cpp:1:24: error: QApplication: No such file or directory
hello.cpp:2:18: error: QLabel: No such file or directory
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:6: error: ‘QApplication’ was not declared in this scope
hello.cpp:6: error: expected ‘;’ before ‘app’
hello.cpp:7: error: ‘QLabel’ was not declared in this scope
hello.cpp:7: error: ‘hello’ was not declared in this scope
hello.cpp:7: error: expected type-specifier before ‘QLabel’
hello.cpp:7: error: expected ‘;’ before ‘QLabel’
hello.cpp:9: error: ‘app’ was not declared in this scope
hello.cpp: At global scope:
hello.cpp:4: warning: unused parameter ‘argc’
hello.cpp:4: warning: unused parameter ‘argv’
make: *** [hello.o] 오류 1

ifree의 이미지

QtGui/QApplication 는 include 하셨나요?

Qt Creator 와 같은 통합환경을 이용하시는게 좋을텐데요.

kaeri17의 이미지

/usr/include/qt3에 정말 qt3 include파일이 있나 확인 해 보세요 ㅎㅎ 그리고 qt4부터는 헤더파일명이 바꼈더라고요. include에 뭐하셨는지 모르겠지만 그게 잘못되었을 수도 있을듯.

jomsalza의 이미지

파일찾기로 찾아 보니까 분명 /usr/include/qt3에 Qapplication.h랑 Qlabel.h가 있는데요... 왜 그럴까요? 끌적 끌적 아~ 비듬~

puaxx의 이미지

답변으로 적으신 파일명이 확실하다면 소스 코드에 Include 한 파일명과는 틀리군요.

danskesb의 이미지

Qt 3.x에서는 저런 식으로 인클루드시키면 컴파일 에러가 납니다. 모든 Qt 3 개발 패키지를 삭제하시고, Qt 4 개발 패키지를 설치한 다음 다시 시도하십시오. Qt를 새로 시작하신다면 바로 Qt 4부터 시작하는 것을 추천합니다.

---- 절취선 ----
http://blog.peremen.name

jomsalza의 이미지

꾸벅! 답글 감사합니다.
그렇다면
qt3개발 패키지는 어떻게 삭제 하는지요? 왕초보 갈길이 머네요!

klara의 이미지

무엇을 하고 싶으신건가요? Qt는 메이저 버전이 3에서 4로 바뀌면서 사용법이 바뀐 부분도 많습니다.
현재 적으신 코드는 Qt4용 코드인데, 컴파일 메시지를 보면 이 코드를 Qt3으로 컴파일하려고 있고, 그래서 에러가 발생하는 것으로 보입니다.
만약 앞으로 작업해야할 것이 Qt3이라 Qt3을 공부하실려고 한 것이라면 Qt3에 대한 내용으로 공부를 하시구요,
Qt4를 공부하실 것이라면, Qt4로 빌드하세요.
Qt4로 빌드하는 구체적인 명령어나 파일 위치는 실행 환경에 따라 다릅니다.
이부분에 대해 도움이 필요하시면 본인이 이용중인 배포판에 대한 정보가 필요합니다.
해당 배포판을 사용중인 분이 답변해주실 수도 있을 것입니다.

jomsalza의 이미지

저는 우분투 10.04 LTS라는 버젼을 Vmware에 설치하여 사용하고 있습니다.
qt3는 제가 처음 리눅스 하면서 이것저것 만지다가 저도 모르게 설치된것 같은데, qt4는 어떻게 설치하는지요?
어떤 사이트에 설명은 너무 복잡해서 뭐가 뭔지 잘 모르겠더라구요.
좀 간단하고 쉬운 방법은 없나요?
다시 한번 답글 감사드립니다. 복받으실 거예요. ^^;

yae1021의 이미지

http://doc.qt.nokia.com/

거의 모든 상세한 설명은 위 페이지에서 아주 쉽게 찾을수 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.