아 거참 짱나네
이색히들 업데이트 뜨는건 정말 공포스럽다.
아주 높은 확률로 다른쪽에서 문제가 생기니..
6.10 대 이후로는 뭔가 항상 문제를 안고 써왔는데
이번에도 병신짓을 하네.
오랜만에 윈도가 필요해서 리붓후 다시 우분투로 부팅을 했는데
키보드 마우스 전부 안먹는다.
이런 씨벌 이따위게 데스크탑 지향이라니
검색해보니
http://ubuntuforums.org/showthread.php?t=967790&highlight=keyboard+mouse
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/254840
추가.
흠. 결국 xorg.conf 가 날아간게 문제였네. 적당히 수작업을 채워넣어서 살리긴 했다. 다른애들 고생담을 들어보니 이게 작년부터 있던 문제인데 난 왜 이제 이걸 만난건지 모르겠네.
어쨌건 존나 맘에 안든다.
헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤
2009년 4월 6일 월요일
2009년 3월 30일 월요일
ubuntu, cmake, boost
ubuntu 가 짱나는게 개발툴들이 버전업이 느리다는거.
결국 ppa 를 찾거나 직접 빌드해서 설치해야 하는데
둘다 기분좋은 일은 아니다.
어쨌건 boost 를 쓰게 되기까지의 과정들
음.. 위 매크로가 추가되면서 내가 자주 써먹는 misc.cmake 는 모양이 이렇게 됐네. 보통 최상위 CMakeLists.txt 에서 이걸 인클루드 하도록 하고 쓰는게 내 현재 개발취향
PS
아..
환경변수에서 BOOST_ROOT 잡는거 잊지 말자.
PS.
오랜만에 C++ 에 boost 까지 써먹으니 빌드속도 쩌는구먼.
아 답답해
결국 ppa 를 찾거나 직접 빌드해서 설치해야 하는데
둘다 기분좋은 일은 아니다.
어쨌건 boost 를 쓰게 되기까지의 과정들
- boost 는 1.38 가져다 직접 빌드. bjam 오랜만에 써보니 인자들이 기억이 안나서 당황. ubuntu 패키지 시스템과 충돌을 피하려고 ~/boost 를 prefix 로 해서 깔았는데 이게 모든 삽질의 시작이 되었다.
- intrepid 의 cmake 가 boost 1.38 을 지원하지 않는 버전.. 후럴... ~/boost 아래 깔린 boost 라이브러리를 못찾는 문제가 있더라. https://launchpad.net/~pgquiles/+archive/ppa 추가해서 설치. 근데 이친구는 굉장히 많은 패키지를 제공하네.
- CMakeLists.txt 에 아래 매크로를 추가해줬다. 간단히 테스팅용도로 쓰는거니 매번 타이핑하는건 번거롭지. 처음안 아예 링크까지 매크로안에 포함시켜벼렸는데 그건 좀 그래서 다시 뺐다.
- 음. 그런데 매크로 짜는게 쉽지 않았다. cmake 스크립트가 워낙 졸렬해서..
# 간단히 만들어본 boost 사용
# 최상위 CMakeLists.txt 에서
#
# use_boost(1.38 system date_time filesystem)
#
# 식으로 버전적은후 필요한 컴퍼넌트들을 줄줄이 적으면 된다.
# foo 라는 바이너리에 부스트 라이브러리들을 링크할때는
#
# target_link_libraries(foo ${Boost_LIBRARIES})
#
# 요리 적으면 된다. 정말 편히 쓰려면 아예 link_libraries 를 박아도
# 되고.
macro(use_boost ver)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREAD ON)
# 아오 짱나. cmake 문법은 정말 드럽군. &rest 같은놈이 없어서 ARGV 를
# 복사하고 앞대가리를 뽑아냈다. 달랑 이거 몇줄 때문에 시간 꽤나 날아갔네.
set(components ${ARGV})
list(REMOVE_AT components 0)
find_package(Boost ${ver} EXACT COMPONENTS ${components})
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
endif()
endmacro(use_boost)
음.. 위 매크로가 추가되면서 내가 자주 써먹는 misc.cmake 는 모양이 이렇게 됐네. 보통 최상위 CMakeLists.txt 에서 이걸 인클루드 하도록 하고 쓰는게 내 현재 개발취향
펼쳐두기..
# gtags
find_program(gtags NAMES gtags)
if(gtags)
add_custom_target(tags ALL ${gtags} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "TAGGING")
endif(gtags)
# 자주 쓰일것 같아서 매크로로 만들어둔다.
macro(use_project xs)
foreach(x ${xs})
include_directories(${${x}_SOURCE_DIR})
link_directories(${${x}_BINARY_DIR})
endforeach(x ${xs})
endmacro(use_project xs)
# 멀티쓰레드사용
macro(use_threads)
include(FindThreads)
link_libraries(${CMAKE_THREAD_LIBS_INIT})
endmacro(use_threads)
# sloccount
find_program(sloccount NAMES sloccount)
if(sloccount)
add_custom_target(sloc ${sloccount} ${CMAKE_SOURCE_DIR})
endif(sloccount)
# 테스트
macro(use_test)
include(CTest)
enable_testing()
endmacro(use_test)
# msvc 워닝 제거
macro(suppress_msvc_warnings ns)
if(MSVC)
foreach(n ${ns})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd${n}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd${n}")
endforeach(n ${ns})
endif(MSVC)
endmacro(suppress_msvc_warnings ns)
# 간단히 만들어본 boost 사용
# 최상위 CMakeLists.txt 에서
#
# use_boost(1.38 system date_time filesystem)
#
# 식으로 버전적은후 필요한 컴퍼넌트들을 줄줄이 적으면 된다.
# foo 라는 바이너리에 부스트 라이브러리들을 링크할때는
#
# target_link_libraries(foo ${Boost_LIBRARIES})
#
# 요리 적으면 된다. 정말 편히 쓰려면 아예 link_libraries 를 박아도
# 되고.
macro(use_boost ver)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREAD ON)
# 아오 짱나. cmake 문법은 정말 드럽군. &rest 같은놈이 없어서 ARGV 를
# 복사하고 앞대가리를 뽑아냈다. 달랑 이거 몇줄 때문에 시간 꽤나 날아갔네.
set(components ${ARGV})
list(REMOVE_AT components 0)
find_package(Boost ${ver} EXACT COMPONENTS ${components})
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
endif()
endmacro(use_boost)
PS
아..
환경변수에서 BOOST_ROOT 잡는거 잊지 말자.
PS.
오랜만에 C++ 에 boost 까지 써먹으니 빌드속도 쩌는구먼.
아 답답해
2008년 11월 24일 월요일
우분투 8.04 에서 8.10 으로 업그레이드
오래전 삽질
http://oldpie.yoonkn.com/cgi-bin/moin.cgi/UbuntuDesktop
wubi 를 이용한 우분투 설치기
경험상 우분투 업그레이드가 한번에 완벽히 끝난적이 지금껏 단 한번도 없었으니 문제 생길때마다 정리해둔다.
http://oldpie.yoonkn.com/cgi-bin/moin.cgi/UbuntuDesktop
wubi 를 이용한 우분투 설치기
경험상 우분투 업그레이드가 한번에 완벽히 끝난적이 지금껏 단 한번도 없었으니 문제 생길때마다 정리해둔다.
- 8.04 는 LTS 라서 8.10 으로 업글이 뜨지 않으니 http://www.ubuntu.com/getubuntu/upgrading 참고해서 업글했다.
- 가장먼저 emacs 를 띄워봤는데 역시나 폰트가 엉망이네 좀 뒤져보니 이맥스쪽 문제라는데.. 어쨌건 https://bugs.launchpad.net/ubuntu/+source/emacs-snapshot/+bug/291399 를 참고해서 아래 코드를 추가해줬다.
(set-frame-parameter nil 'font-backend '(xft x)) - 스피커 비프음 제거. 예전에 블랙리스트에 올려뒀는데 업데이트 하면서 덮어써서 다시 해줬다. /etc/modprobe.d/blacklist 에 blacklist pcspkr 추가. 바로 적용하려면 sudo modprobe -r pcspkr
- 플래시 플러그인이 설치되었는데도 파이어폭스가 못찾는 문제. https://bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/281958 보고 심볼릭 링크 몇개 추가해서 해결. 헐 시바 이문제는 정말 짱나는군. 이문제를 만나는 사람이 몇명 없는 걸로 봐선 내가 플래시 플러그인을 몇개 바꿔가면서 설치해본게 문제였나보다?!
- usb 사운드카드를 이제 쓰질 않아서.. 이번엔 쉽게 지나갔다. 허허.
- emacs 에서 htmlize 가 안먹는 문제. invalid face 에러가 난다. 음 이건 htmlize.el 을 새버전으로 바꾸고 해결.
- 사운드 디바이스 문제. alsa 쪽 문제 인것 같은데 어제 퇴근후 오늘 와보니 사운드쪽이 먹통이네. 여러 플레이어들마다 서로 다른 에러를 뽑아줘서 검색하는데도 좀 난감했다. 아래 명령으로 리붓없이 해결.
sudo alsa force-reload
피드 구독하기:
글 (Atom)