QT compile error: expected class-name before ‘{’ token ITK/VTK/QT

/home4/myProject/ITK_lec_8/SimpleImageFilter.h:10: error: expected class-name before ‘{’ token
make[2]: *** [CMakeFiles/ITK_lec_8.dir/ITK_lec_8.cxx.o] 오류 1
make[1]: *** [CMakeFiles/ITK_lec_8.dir/all] 오류 2
make: *** [all] 오류 2

새로운 프로젝트를 할때마다 생기는 컴파일 문제,,

똑같은 실수를 반복하지 않기 위해 확실히 하고 넘어가자,,

**
Project name : ITK_lec_8
Source files : CMakeLists.txt ITK_lec_8.cxx SimpleImageFilter.h SimpleImageFilter.cxx SimpleImageFilter.ui

class SimpleImageFilter : public QMainWindow, public Ui_SimpleImageFilter
{

에러가 나는 부분은 바로 요기,,클래스를 선언하는 부분에서 난다,,

아마도 클래스 상속에서 문제가 발생한 듯,,

QMainWindow는 QT 시스템 클래스 이므로 문제가 있을리 없고,,그렇다면 문제는 Ui_SimpleImageFilter에서 발생하지 않았을까??

빙고!!

문제는 프로젝트의 메인 소스파일의 인스턴스와 UI 오브젝트를 일치시켜 줄 것,,


위 그림에서 빨간색으로 표시한 부분의 objectName을 반드시 클래스 명과 일치 시켜야 한다~

그림과 같이 'SimpleImageFilter'로 변경후 컴파일,, 두둥,,

root@novel-eeg:/home4/myProject/ITK_lec_8/Bin# make
[ 20%] Generating ui_SimpleImageFilter.h
[ 40%] Generating moc_SimpleImageFilter.cxx
[ 60%] Building CXX object CMakeFiles/ITK_lec_8.dir/ITK_lec_8.cxx.o
[ 80%] Building CXX object CMakeFiles/ITK_lec_8.dir/SimpleImageFilter.cxx.o
[100%] Building CXX object CMakeFiles/ITK_lec_8.dir/moc_SimpleImageFilter.cxx.o
Linking CXX executable ITK_lec_8
[100%] Built target ITK_lec_8
root@novel-eeg:/home4/myProject/ITK_lec_8/Bin# 


아무일 없이 컴파일이 되는것을 알 수 있다.

Installing OpenGL on Ubuntu ITK/VTK/QT

VTK 설치 중 opengl 라이브러리가 없어서 설치를 못한다는 메세지를 받으신분~


당황하지 마시고 opengl 라이브러를 설치 하세요~


ubuntu 사용자는 아래와 같이 간단한 명령어 입력으로 설치가 가능합니다.


1. sudo apt-get update
2. sudo apt-get install build-essential
3. sudo apt-get install freeglut3-dev
--------------------------------------------------------------------------------

This is a simple tutorial to show a new linux user (such as myself) how to setup freeglut and OpenGl.

From a terminal

1) sudo apt-get update

-This will update your apt database to the most recent available packages.

2) sudo apt-get install build-essential

- This installs the necessary development tools for building source code.

3) sudo apt-get install freeglut3-dev

- This installs the development libraries and headers for freeglut.

Your done! Extremely simple! However you must remember that when compiling you must add a '-lglut' as a comand line argument to gcc. 
If you don't it cannot find the library's and you will get undefined reference errors.

example command line: gcc simple.c -lglut

At this point if your program compiles and runs then you are finished. 
However the first time I tried to run mine I received a 'libGL warning: 3D driver claims to not support visual 0x42'. 
This error means I cannot display the required colors to run the program. 
In my case I had the most recent drivers for my video card. 
So I did some research on my monitor and found out it can display a color depth of 24 instead of the 16 it was set at. 
To fix this problem you must edit the /etc/X11/xorg.conf file as root and set the 'DefaultDepth 24'. Reboot and the problem is solved.

This is my first post (and tutorial) on the ubuntuforums. 
If people feel that this tutorial is not needed they can feel free to remove it. If anyone wants to add anything related to freeglut or OpenGl please feel free.

[source] http://ubuntuforums.org/showthread.php?t=345177


QT debugging

Qt, "undefined reference to `vtable for ..." 

moc 파일,,QT에서 컴파일시 자동으로 생성해주는 파일이라,,디버깅이 어렵다.

QT install ITK/VTK/QT

QT library를 사용하기. (x11 platform)
QT library의 license는 유로인 commercial 무료인 LGPL 로 나뉘어 진다.
연구의 목적이라면 LGPL lisense 만으로 충분하다. http://qt.nokia.com/downloads/linux-x11-cpp
QT library 최신버전을 다운로드하여 압축을 풀고,
./configure
make
make install
순으로 명령어를 입력하여 설치한다.
라이브러리를 설치하고 잊지말고 반드시 해줘야 하는 일은,,
QT 라이브러리 경로를 환경변수에 설정하는 일!!
bash, ksh, zsh or sh 의 경우 :
PATH=/usr/local/Trolltech/Qt-4.7.2/bin:
export PATH
위의 두 라인을 환경변수 설정 파일 (ex : .bashrc) 에 추가.
csh or tcsh 의 경우 :
setenv PATH /usr/local/Trolltech/Qt-4.7.2/bin:$PATH
위 명령어를 입력 한다.

Be a super toolkiter..

요즘 부쩍 많은 Toolkit을 접하게 되는데,,

이건 머 국내에 문서도 없고,,물어볼 사람도 없고,,

구글링,, 네이버지식인,, 등등,,

웹에서 할 수 있는 일은 다해봐도 시원한 답을 찾을 수 없어서,,

스스로 해결하고,,

나와 같은 사람들이 있다면 여기서 많은 정보를 얻을 수 있기를 바라는 마음에

이곳을 만들게 되었다,,

2011년 3월 23일
By J.esS


1