加不面死(가불면사) - "까불면 죽는다" 연합뉴스에 실린 어느 짜장면집에 붙은 소형 플레카드에서.
1 redpixel이 리눅스에서 설치기 #
- fedora core 3 - 2.6 커널이라면 Linux에 적혀있는 커널 헤더 업그레이드를 먼저 하는 것이 좋습니다.
- 배포본을 다운로드 받아서 적당한데 압축을 풉니다. 저는 /usr/src/ACE_wrappers에 풀어두었습니다.
- 배포본 디렉토리내에 build 라는 디렉토리를 하나 mkdir합니다.
- cd build 한 후 ../configure 합니다. 자세한 옵션은
여기에서 Building ACE with GNU Autoconf을 참조하세요.
- make하고 다른 일을 합니다. (정말 오래걸립니다!)
- make install 합니다. /usr/local 아래에 적당한 디렉토리를 만들고 설치해줍니다.
- ace-config라는 스크립트가 생기는데 이를 사용하면 g++ 컴파일 옵션 문자열을 생성해줍니다.
2 일반적인 설치방법 #
리눅스에서 ACE 설치하는 것은 보통의 Unix 머신에서 ACE 설치하는 것과 정확히 동일한 방식을 따른다.
- ACE.tar.gz 파일을 우선 다운로드해서 tar.gz을 푼다. (
ACE.tar.gz 7.7MB) 그러면 ACE_wrappers 디렉토리가 생긴다.
- 직접
공식 다운로드 홈페이지에서 다운받아도 됩니다. 종종 다운되기는 하지만(과부하가 원인?) 업글이 약 1~2달 간격으로 이루어지므로 방문해서 받는 것이 좋겠네요. -- redpixel
- 직접
- 환경변수 두가지를 설정해야 한다. ACE_ROOT 와 LD_LIBRARY_PATH 인데,
- ACE_ROOT = ~/ACE_wrappers 가 되도록 하고,
- csh 에서는 % setenv ACE_ROOT ~myhome/ACE_wrappers
- LD_LIBRARY_PATH 에 ~/ACE_wrappers/ace 가 추가되도록 한다.
- csh 에서는 % setenv LD_LIBRARY_PATH ${ACE_ROOT}/ace:${LD_LIBRARY_PATH}
- ACE_ROOT = ~/ACE_wrappers 가 되도록 하고,
- 두개의 설정파일을 생성해 준다.
- ACE_ROOT/ace 디렉토리에서
- ln -s config-linux.h config.h 명령어를 수행하고,
- 주의: config-linux-common.h 가 아님.
- ACE_ROOT/include/makeinclude 디렉토리에서
- ln -s platform_linux.GNU platform_macros.GNU 명령어를 수행한다.
- ACE_ROOT/ace 디렉토리에서
- 그러고 나서, ~/ACE_wrapeprs/ace 디렉토리에 가서
- make 라고 치면 만들어진다.
- ~/ACE_wrappers 에서 make 치면 모든 테스트 루틴을 다 컴파일 하기 때문에, 총 컴파일 시간이 40 분 이상 걸린다.
- 총 컴파일 결과가 압축해서 240 메가 바이트가 될 정도로 무시무시하게 크다.
- 윈도우에서는 static, dll 빌드를 릴리즈, 디버그 각각 다할 경우 심하면 2~3시간도 걸립니다.
-- redpixel
- 문제없이 make 가 되었으면, 제대로 동작하는 지를 확인하기 위해서,
- ACE_ROOT/examples/Threads 에 가서 make 하고, (5분 소요)
- 만약 make 수행했는데,
Makefile:43: /include/makeinclude/wrapper_macros.GNU: 그런 파일이나 디렉토리가 없음 Makefile:44: /include/makeinclude/macros.GNU: 그런 파일이나 디렉토리가 없음 Makefile:45: /include/makeinclude/rules.common.GNU: 그런 파일이나 디렉토리가 없음 Makefile:46: /include/makeinclude/rules.nonested.GNU: 그런 파일이나 디렉토리가 없음 Makefile:47: /include/makeinclude/rules.bin.GNU: 그런 파일이나 디렉토리가 없음 Makefile:48: /include/makeinclude/rules.local.GNU: 그런 파일이나 디렉토리가 없음
- 이렇게 나오면, ACE_ROOT 변수가 세팅되지 않은 것이다.
- 만약 make 를 수행했는데, make: Nothing to be done for `all'. 이라고 나오면, 이미 다 만들어진 경우이다.
- 만약 make 수행했는데,
- make가 다되었으면, ./task_one 이라는 명령어를 수행할 수 있다.
- 만약 ./task_one을 수행할 때,
- ./task_one: error while loading shared libraries: libACE.so.5.2.7: cannot open shared object file: No such file or directory
- 이렇게 나오면, LD_LIBRARY_PATH 에 ACE_ROOT/ace 가 추가되어 있지 않은 것이다.
- 만약 ./task_one을 수행할 때,
- ./task_one 이 제대로 실행되면, ACE 가 정상적으로 설치된 것이다.
- ACE_ROOT/examples/Threads 에 가서 make 하고, (5분 소요)
바로가기: ACE 프로그래밍









