#20151201-01 :: C++ :: build cppcsp2-2.0.6 on Mac OS X
Mac OS X 10.11.1 El Capitan
LLVM 7.0.0 (clang-700.1.76)
cppcsp2-2.0.6을 Mac OS X에서 빌드하려면 수 많은 에러를 만나게 된다.
아래와 같은 방법을 통해 문제를 해결한다.
소스파일을 다운로드 받고 압축을 푼다.
$ cd ~/Downloads
$ tar -vxzf cppcsp2-2.0.6.tar.gz
Makefile 생성을 위해 아래와 같이 스크립트를 실행한다.
$ ./configure
이 상태에서 make를 컴파일 실행하면 에러가 발생한다.
Makefile에 _XOPEN_SOURCE 선언을 추가한다.
$ vi Makefile
DEFS = … -D_XOPEN_SOURCE
다시 make를 실행해 보지만 또 컴파일 에러가 발생한다.
src/process.h 파일을 수정한다.
$ vi src/process.h
typedef ucontext Context; (수정 전)
typedef ucontext_t Context; (수정 후)
다시 make 파일을 실행하면 컴파일 에러는 끝나지 않았다.
src/channel_factory.h 파일을 수정한다.
$ vi src/channel_factory.h
:210
deleteAll(o2o); (수정 전)
StandardChannelFactory::deleteAll(o2o); (수정 후)
이번에는 make를 실행하면 이번에는 링크 에러가 발생한다.
Makefile에서 -lrt 옵션을 제거한다.
$ vi Makefile
CPPCSP_LINK_LIBS = -ltr -lpthread (수정 전)
CPPCSP_LINK_LIBS = -lpthread (수정 후)
이제 make를 실행하면 성공한다.
make test를 실행하면 유닛테스트 결과를 볼 수 있다.
'working diary' 카테고리의 다른 글
#20151214-01 :: C++ :: "libc++abi.dylib: Pure virtual function called!" (0) | 2015.12.14 |
---|---|
#20151201-02 :: C++ :: mongoose web server에서 mg_enable_multithreading 사용 (0) | 2015.12.01 |
#20150127-01 :: eclipse :: GC overhead limit exceeded (0) | 2015.01.27 |
#20150126-01 :: eclipse :: eclipse를 ubuntu launcher에 등록하기 (0) | 2015.01.26 |
#20150119-03 :: go :: go를 이용한 TCP/IP Echo Server Example (0) | 2015.01.19 |