[완료]Qt 설정하는 방법 좀 알려주세요.

edmondwells의 이미지
1251
points
0
points

예전에도 Qt로 공부좀 해보려다 시작도 못해보고 그만뒀습니다.
경로설정이 잘못된 듯 한데 어디가 잘못됐는지 모르겠습니다.
얼마 전에 열혈강의 Qt프로그래밍책을 구입해서 어제부터 해보는데...
또 시작부터 때려치고 싶은 마음이 솟아오르고 있습니다.

OS는 Kubuntu 8.04이고,
Qt는 libqt4-assistant, core, dbg, dbus, designer, dev등과 qt4-designer, dev-tools, doc, qtconfig 등을 설치했습니다.

예제는 열혈강의 Qt프로그래밍 2-1의 hello.cpp입니다. 꺽쇠때문에 include(QApplication, QPushButton)한 게 안나타나네요.

#include 
#include 
int main(int argc, char **argv) {
    QApplication app(argc, argv);
    QPushButton *PushButton = new QPushButton("Push&Button", 0);
    PushButton->show();
    QObject::connect(PushButton, SIGNAL(clicked()), &app, SLOT(quit()));
    return app.exec_();
}

그런데 이것저것 해봐도 "gcc -c push.cpp -I$QTDIR/include"로 컴파일을 하면, "QApplication: No such file or directory"부터 시작해서, 정의되지 않았다는 에러가 주르륵 나타납니다.

아무래도 QTDIR이나 PATH설정을 잘못한 것 같은데 어디를 어떻게 해줘야 할 지 모르겠습니다.

.profile에는
QTDIR=/usr/share/qt4
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/include:$LD_LIBRARY_PATH
export QTDIR PATH LD_LIBRARY_PATH

저게 잘 된 건지는 모르겠는데, qt4밑에 bin디렉토리가 있는 건 /usr/share/qt4 밖에 없더라구요. /usr/share/qt4/include는 /usr/include/qt4에 링크되어 있습니다.
그런데 책에는 LD_LIBRARY_PATH의 경로를 $QTDIR/lib라고 되어 있는데, 제 경우에는 /usr/share/qt4밑에 lib라는 디렉토리는 없습니다.

검색하다보니 .profile이 아니라 .bashrc에 넣는 것도 있길래, 저 내용을 .bashrc에도 넣어줬으나 역시 같은 에러입니다.
파일을 수정한 후에는 source명령으로 갱신해 주었습니다.

어떻게 해야될지 답답하기만 합니다. 도움 부탁드립니다.

xylosper의 이미지
5251
points

qmake를 이용하세요.

1
point

qmake를 이용하세요. 아마 책 초반엔 안나오나 보던데 좀더 찾아보면 나올듯 합니다.
여기를 보시면 아주 간단한 경우에 대해서 프로젝트 파일을 생성하고 컴파일하는 방법이 나옵니다....방법이라고 하기도 뭐할정도로 간단하지만요.
사실 Qt뿐만 아니라, 일반적으로 LD_LIBRARY_PATH를 건드릴일은 거의 없습니다.

edmondwells의 이미지
1251
points

잠자려다 신경쓰여서

0
points

잠자려다 신경쓰여서 다시 컴퓨터켜고 들어와보니 답이 올라와 있었네요.
qmake로 다행히 쉽게 해결되었습니다.

그런데, qmake가 아니더라도 저런 식(gcc -c ....)으로 컴파일해도 되야하는 거 아닌가요?
이게 되야 qmake도 되는 줄 알았는데, qmake가 알아서 다 해주는군요;;;

궁금하긴 하지만 이건 여기서 접어두고, Qt하는데 집중해야겠습니다.

새벽인데도 불구하고 바로 답글 올려주셔서 정말 감사합니다.

xylosper의 이미지
5251
points

답은 간단합니다.

0
points

답은 간단합니다. 에러내용 그대로, $QTDIR/include에 QApplication이란 파일이 없는 것입니다.
$QTDIR/include에 해더파일이 있는지 확인하셨나요?
적으신 내용으로 보아, 책은 직접 컴파일해서 설치한 경우를 가정하고, 질문하신분은 아마 배포판에서 제공하는 바이너리를 설치하신듯합니다.
이경우, 배포판에 따라서 다르지만, 일반적으로는 해더파일은 /usr/include밑에, 라이브러리파일은 /usr/lib밑에, 각종 툴들(qmake, moc, designer 등)은 /usr/bin밑에 들어가게 됩니다.
$QTDIR이 유효한건 직접 컴파일해서 설치했을때, 하나의 디렉토리밑에 include, lib, bin등의 Qt의 모든 파일들이 들어가게 되니까, 그 디렉토리를 $QTDIR로 지정했을때입니다.
예를 들어 전 kubuntu를 쓰고 있는데, QApplication이란 해더파일은 /usr/include/qt4/QtGui 밑에 들어있습니다.
그러니 당연히 $QTDIR/include라는 경로에는 QApplication은 존재하지 않습니다. 그러니 컴파일시에 에러가 나구요.
그리고 라이브러리파일들은 /usr/lib밑에 들어있기 때문에 LD_LIBRARY_PATH같은것을 건들필요가 없습니다.
그보다 컴파일 옵션에 라이브러리 링크(-l옵션)옵션이 빠져있기 때문에, 함수에 대한 레퍼런스를 찾을수 없다고 에러가 뜨고 빌드에 실패할 것입니다.
Qt를 설치한 환경에 따라서 이런 구체적인 경로들은 얼마든지 달라질수 있기 때문에, 결국은 qmake를 쓰는 것이 가장 간단한 방법이 될 것입니다.

음 :)

0
points

윗분 말씀대로 qmake를 이용하시는게 더 편리할꺼에요.
패스 설정이 잘못된거 같은데.. -I 하고 다른 경로를 추가해 보는건 어떨까요? :)
글만 봐서는 딱히- 잘못된걸 찾기가 참 뭐하네요. :)

======================================
솔직함은 배려의 측면에서 보면 양날의 칼이다.

코딩하는 꼬꼬마
moonjuyoung@gmail.com

edmondwells의 이미지
1251
points

qmake...알아서 다

0
points

qmake...알아서 다 해주네요. ㅎ;;;
경로문제는 접어두기로 했습니다.
어제부터 신경이 곤두서서 리눅스가 싫어지려고 했거든요;;;

안녕하세요.

0
points

Qt 버전에 따라서 환경이 달라져서 컴파일이 안되는 부분이 있는 것 같습니다.
혹시 책보다가 문의사항이 있으시면 제 홈페이지에 글 올려주세요.

-------------------------------------

서영진 입니다.
Homepage : http://valentis.pe.kr
blog : http://www.lifeholic.com

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.