% yum install ddd
만약 성공적으로 설치되면 다행인데, 안되는 경우도 있다.
나 같은 경우는 머신을 2개를 사용중인데, 한쪽은 되는데, 다른 한쪽은 안된다.
이유를 모르겠다.
뭐 열심히 파보면 알 수도 있겠지만, 귀찮아서 그냥 말았다.
만약 안되는 경우, 소스를 사용해서 설치하는 방법에 대해 적어본다.
- 다운로드
https://centos.pkgs.org/7/puias-unsupported-x86_64/ddd-3.3.12-20.sdl7.x86_64.rpm.html
사이트에 가면 아래와 같은 항목이 있는데, 다운로드 하면된다.
Source package: ddd-3.3.12-20.sdl7.src.rpm
만약 잘 못 찾겠으면, 그냥 아래 링크를 통해 다운로드 한다.
http://springdale.math.ias.edu/data/puias/unsupported/7/SRPMS/ddd-3.3.12-20.sdl7.src.rpm
- 압축해제
다운로드 한 rpm 파일을 압축해제 한다.
% rpm2cpio ddd-3.3.12-20.sdl7.src.rpm | cpio -idv
위 명령에 대한 자세한 설명은, 구글에서 "rpm 압축해제" 라고 검색하면 나온다.
- 설정
컴파일을 하기 전에 설정을 먼저 해야 한다.
설정은 일반적으로 configure 를 사용해서 한다.
% ./configure --prefix=$HOME/ddd
prefix 에 자신이 설치하고 싶은 디렉토리를 넣어주면 된다.
configure 진행 중 에러가 발생했다.
configure: error: The X11 library '-lX11' could not be found.
Please use the configure options '--x-includes=DIR'
and '--x-libraries=DIR' to specify the X location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.
추가적인 파일을 설치해주고 다시 진행을 한다.
% yum install libX11-devel
또 에러가 발생했다.
configure: error: The X toolkit library '-lXt' could not be found.
Please use the configure options '--x-includes=DIR'
and '--x-libraries=DIR' to specify the X location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.
추가적인 파일을 설치해주고 다시 진행을 한다.
% yum install libXt-devel
또 에러가 발생했다.
Please use the configure options '--x-includes=DIR'
and '--x-libraries=DIR' to specify the X location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.
추가적인 파일을 설치해주고 다시 진행을 한다.
% yum install libX11-devel
또 에러가 발생했다.
configure: error: The X toolkit library '-lXt' could not be found.
Please use the configure options '--x-includes=DIR'
and '--x-libraries=DIR' to specify the X location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.
추가적인 파일을 설치해주고 다시 진행을 한다.
% yum install libXt-devel
또 에러가 발생했다.
configure: error: The Motif include file 'Xm/Xm.h' could not be found.
Please use the configure options '--with-motif-includes=DIR'
and '--with-motif-libraries=DIR' to specify the Xm location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.
추가적인 파일을 설치해주고 다시 진행을 한다.
% yum install openmotif-devel
드디어 잘되었다.
configure:
configuration is done. Type `make' to make DDD.
- 빌드
% make
컴파일을 진행한다.
컴파일이 성공적으로 완료되면 다행인데,
나 같은 경우는 컴파일 작업중에 에러가 발생했다.
strclass.C:1546:35: error: ‘EOF’ was not declared in this scope
while ((ch = sb->sbumpc()) != EOF)
^
strclass.C:1559:15: error: ‘EOF’ was not declared in this scope
if (ch == EOF)
^
strclass.C: In function ‘int readline(std::istream&, string&, char, int)’:
strclass.C:1589:35: error: ‘EOF’ was not declared in this scope
while ((ch = sb->sbumpc()) != EOF)
^
strclass.C:1602:15: error: ‘EOF’ was not declared in this scope
if (ch == EOF)
^
make[2]: *** [strclass.o] 오류 1
make[2]: Leaving directory `/home/ck0911.kim/ddd-3.3.12-20.sdl7.src/ddd-3.3.12/ddd'
make[1]: *** [all] 오류 2
make[1]: Leaving directory `/home/ck0911.kim/ddd-3.3.12-20.sdl7.src/ddd-3.3.12/ddd'
make: *** [all-recursive] 오류 1
원인이 무엇인지 구글링을 했다.
EOF 에 대한 정의가 없어서 안되는거란다.
소스파일에 #define EOF -1 를 추가해 줘도 되고,
나 같은 경우는 그냥 stdio.h 를 추가해줬다.
% vi ddd/strclass.C
include 구문들이 있는 곳에 아래 구문을 추가해준다.
#include <stdio.h> |
다시 컴파일을 진행한다.
컴퓨터 사양에 따라 시간이 좀 걸릴 수 있으므로, 느긋하게 커피 한잔 하면서 기다리면 된다.
- 설치
컴파일 된 결과물들을 $HOME/ddd 에 설치하는 작업이다.
실제 ddd 디렉토리가 생성되어 있는걸 볼 수 있다.
그 디렉토리 안에 들어가면 bin 디렉토리가 보인다.
그 디렉토리 안에 들어가면 실행 가능한 바이너리 파일이 보인다.
그 바이너리 파일을 아무대서나 실행할 수 있도록 PATH 에 추가해 준다.
$HOME/.bashrc 맨 마지막에
"export PATH=$PATH:$HOME/ddd/bin" 구문을 추가해 주면 된다.
- 실행
아래와 같이 화면이 뜨면 잘 설치된 것이다.
출처
https://savannah.gnu.org/bugs/?33960
https://stackoverflow.com/questions/4577453/fcgio-cpp50-error-eof-was-not-declared-in-this-scope
https://stackoverflow.com/questions/13986636/cannot-find-lx11
https://www.howtoforge.com/community/threads/problem-in-installing-ddd-3-3-11-on-rhel5-machine.24515
댓글 없음:
댓글 쓰기