Programming
-
윈머지(winmerge)를 사용하다 보면 Build.log 같은 파일이 잔뜩 목록에 나와서 불편할 때가 있습니다. 일일이 숨기기를 사용하기에도 귀찮고 어떻게 할까를 고민해보다가 필터에 'Visual C++ loose' 라는 게 있다는 것에 주목을 하게 되었습니다. 윈머지가 설치된 폴더(C:\Program Files (x86)\WinMerge)를 뒤져보니 Filters 폴더가 있었고 이 곳에 Merge_VC_loose.flt 란 파일이 떡하니 자리잡고 있더군요. 빙고! 열어보니 몇가지 항목으로 이뤄져 있었습니다. name: Visual C++ loose desc: Suppresses various binaries found in Visual C++ source trees def: include f: \.a..
[Winmerge] Visual Studio 용 무시할 파일 추가하기윈머지(winmerge)를 사용하다 보면 Build.log 같은 파일이 잔뜩 목록에 나와서 불편할 때가 있습니다. 일일이 숨기기를 사용하기에도 귀찮고 어떻게 할까를 고민해보다가 필터에 'Visual C++ loose' 라는 게 있다는 것에 주목을 하게 되었습니다. 윈머지가 설치된 폴더(C:\Program Files (x86)\WinMerge)를 뒤져보니 Filters 폴더가 있었고 이 곳에 Merge_VC_loose.flt 란 파일이 떡하니 자리잡고 있더군요. 빙고! 열어보니 몇가지 항목으로 이뤄져 있었습니다. name: Visual C++ loose desc: Suppresses various binaries found in Visual C++ source trees def: include f: \.a..
2016.01.26 -
Visual Studio 2008로 디버깅을 하고 있는데 Visual Studio 자체가 자꾸 MFC 오류를 내면서 죽는 경우가 있었습니다. 아니 VS로 디버깅하는데 VS로 죽다니...너무 황당해서 무시하고 다시 실행해서 진행하는데 디버깅 좀 진행되면 죽고, 다시 시작하면 중간중간 지정한 내용 날라가 있고...디버깅이 금방 끝나는 경우도 있지만 보통은 계속 붙잡고 있는 경우가 많은데 너무 자주 발생해서 스트레스를 왕창 받다가 이렇게 작업 못하나 검색하느라 못하나 매한가지다라는 마음에 구글을 뒤져봤더니 확장(extension) 프로그램 때문에 문제가 발생하는 경우가 있으니 안전 모드로 실행해보라는 얘기가 있었습니다. 그 글의 댓글 중에 이렇게 안전 모드로 실행했다가 다시 정상적으로 실행하니까 문제 없이 잘..
[VS2008] Visual Studio 잦은 MFC 오류 발생할 때...Visual Studio 2008로 디버깅을 하고 있는데 Visual Studio 자체가 자꾸 MFC 오류를 내면서 죽는 경우가 있었습니다. 아니 VS로 디버깅하는데 VS로 죽다니...너무 황당해서 무시하고 다시 실행해서 진행하는데 디버깅 좀 진행되면 죽고, 다시 시작하면 중간중간 지정한 내용 날라가 있고...디버깅이 금방 끝나는 경우도 있지만 보통은 계속 붙잡고 있는 경우가 많은데 너무 자주 발생해서 스트레스를 왕창 받다가 이렇게 작업 못하나 검색하느라 못하나 매한가지다라는 마음에 구글을 뒤져봤더니 확장(extension) 프로그램 때문에 문제가 발생하는 경우가 있으니 안전 모드로 실행해보라는 얘기가 있었습니다. 그 글의 댓글 중에 이렇게 안전 모드로 실행했다가 다시 정상적으로 실행하니까 문제 없이 잘..
2016.01.05 -
기록용으로 남깁니다. 이 부분 처리를 제대로 안해서 "multiple definition of"라는 오류와 씨름을 하게 되었습니다.여기 저기 글 보면서 원래 쓰는 곳에 extern도 넣어봤다가 개념을 모르고 해답(solution)만 찾으니 제대로 되지 않더군요..어짜피 선언 및 정의(값 지정)는 반드시 한 번씩 해야하니까 선언문과 정의문만 제대로 쓰면 오류가 나지 않습니다. 선언을 포함할 헤더(.h)에 다음과 같은 형태로 추가합니다.extern unsigned int var[MAX]; 실제로 사용 또는 처음 정의할 곳(.c)에 다음과 같은 형태로 추가합니다.unsigned int var[MAX] = { 1, 2, 3, 4, 5 }; 참고: http://stackoverflow.com/questions/4..
[C] 배열을 선언과 정의를 다른 파일에서 사용할 때기록용으로 남깁니다. 이 부분 처리를 제대로 안해서 "multiple definition of"라는 오류와 씨름을 하게 되었습니다.여기 저기 글 보면서 원래 쓰는 곳에 extern도 넣어봤다가 개념을 모르고 해답(solution)만 찾으니 제대로 되지 않더군요..어짜피 선언 및 정의(값 지정)는 반드시 한 번씩 해야하니까 선언문과 정의문만 제대로 쓰면 오류가 나지 않습니다. 선언을 포함할 헤더(.h)에 다음과 같은 형태로 추가합니다.extern unsigned int var[MAX]; 실제로 사용 또는 처음 정의할 곳(.c)에 다음과 같은 형태로 추가합니다.unsigned int var[MAX] = { 1, 2, 3, 4, 5 }; 참고: http://stackoverflow.com/questions/4..
2015.08.15 -
여러 다른 곳에 위치한 라이브러리를 링크하다 보면 참조 순서가 중요한 경우가 있습니다.간단한 예를 들면 gcc -lm -ldl -Lx 라고 하면 libm.a, libdl.a 그다음 x경로에서 라이브러리를 찾습니다. 그런데 저 libm이나 libdl을 그 뒤의 object 파일이 참조한다면 이것은 제대로 된 순서가 아닙니다.가장 의존성이 높은 라이브러리를 왼쪽에 놓고 차례로 해당 의존성을 해결해가는 순서로 배치해야 합니다. 그러므로 위와 같은 경우 의존성이 존재한다면 gcc -Lx -lm -ldl 같은 순서로 바꿔줘야 unknown symbol error 같은 링커 오류를 피할 수 수 있습니다. 참조: http://stackoverflow.com/questions/45135/why-does-the-orde..
library 옵션 위치여러 다른 곳에 위치한 라이브러리를 링크하다 보면 참조 순서가 중요한 경우가 있습니다.간단한 예를 들면 gcc -lm -ldl -Lx 라고 하면 libm.a, libdl.a 그다음 x경로에서 라이브러리를 찾습니다. 그런데 저 libm이나 libdl을 그 뒤의 object 파일이 참조한다면 이것은 제대로 된 순서가 아닙니다.가장 의존성이 높은 라이브러리를 왼쪽에 놓고 차례로 해당 의존성을 해결해가는 순서로 배치해야 합니다. 그러므로 위와 같은 경우 의존성이 존재한다면 gcc -Lx -lm -ldl 같은 순서로 바꿔줘야 unknown symbol error 같은 링커 오류를 피할 수 수 있습니다. 참조: http://stackoverflow.com/questions/45135/why-does-the-orde..
2015.08.14 -
사전 형태의 GUI를 제공하는 devhelp를 아시나요!!처음 있었던 회사에서 사용해보고 편하다고 생각했는데 그걸 까맣게 잊고 살다가 오랜만에 실행해보게 되었습니다.어디서든 devhelp를 실행시키면 됩니다. 지금은 문서를 몇 개 설치해서 늘렸는데 처음에는 딸랑 2개 밖에 없습니다.. Totem과 Python 문서가 그것입니다.다른 문서도 찾아보고 있는 중인데 위의 GIO/GLib/GObject 문서는 관련 라이브러리 문서 패키지를 설치해야 devhelp가 자동으로 인식해서 목록에 추가하게 됩니다. sudo apt-get install libglib2.0-doc 현재 확인한 devhelp에 추가되는 패키지 이름은 다음과 같습니다. 관련 내용은 찾을 때마다 반영해놓겠습니다. libglib2.0-doclib..
devhelp 설치 및 사용하기사전 형태의 GUI를 제공하는 devhelp를 아시나요!!처음 있었던 회사에서 사용해보고 편하다고 생각했는데 그걸 까맣게 잊고 살다가 오랜만에 실행해보게 되었습니다.어디서든 devhelp를 실행시키면 됩니다. 지금은 문서를 몇 개 설치해서 늘렸는데 처음에는 딸랑 2개 밖에 없습니다.. Totem과 Python 문서가 그것입니다.다른 문서도 찾아보고 있는 중인데 위의 GIO/GLib/GObject 문서는 관련 라이브러리 문서 패키지를 설치해야 devhelp가 자동으로 인식해서 목록에 추가하게 됩니다. sudo apt-get install libglib2.0-doc 현재 확인한 devhelp에 추가되는 패키지 이름은 다음과 같습니다. 관련 내용은 찾을 때마다 반영해놓겠습니다. libglib2.0-doclib..
2015.04.09 -
man man 명령을 내려보면 9번 영역(section)에 커널 함수(Kernel routines)가 지정되어 있는데 표준이 아니라고 나옵니다(Non standard). 실제로 man printk 라고 명령 내리면 찾을 수 없다는 메시지가 발생합니다. kernel.org나 다른 웹페이지에서는 커널에서 제공하는 api에 대한 man page가 존재하는데 왜 없을까요? 단순히 표준이 아니라서일까요? 검색해보니 linux-manual 이라는 이름으로 패키지가 제공되는 배포판도 있었습니다.뭐 어쨌든 우분투와 그 기반 배포판인 민트 리눅스에서는 제공하지 않습니다. 이를 사용하려면 커널 소스를 받아다 포함된 man page 소스로 바이너리를 생성하고 이를 설치해줘야 합니다. sudo apt-get source li..
커널 매뉴얼(manpage) 만들기man man 명령을 내려보면 9번 영역(section)에 커널 함수(Kernel routines)가 지정되어 있는데 표준이 아니라고 나옵니다(Non standard). 실제로 man printk 라고 명령 내리면 찾을 수 없다는 메시지가 발생합니다. kernel.org나 다른 웹페이지에서는 커널에서 제공하는 api에 대한 man page가 존재하는데 왜 없을까요? 단순히 표준이 아니라서일까요? 검색해보니 linux-manual 이라는 이름으로 패키지가 제공되는 배포판도 있었습니다.뭐 어쨌든 우분투와 그 기반 배포판인 민트 리눅스에서는 제공하지 않습니다. 이를 사용하려면 커널 소스를 받아다 포함된 man page 소스로 바이너리를 생성하고 이를 설치해줘야 합니다. sudo apt-get source li..
2015.04.08 -
g++ 옵션에서 -pthread 옵션을 생략했을 때 발생할 수 있는 메시지입니다. 옵션 추가해서 다시 컴파일해서 실행하면 정상 동작합니다.
[오류] Enable multithreading to use std::thread: Operation not permittedg++ 옵션에서 -pthread 옵션을 생략했을 때 발생할 수 있는 메시지입니다. 옵션 추가해서 다시 컴파일해서 실행하면 정상 동작합니다.
2015.03.16 -
소스를 처음 가져다가 git 로컬 저장소에 추가할 때는 미처 알지 못했는데 자동 생성되는 파일이라 저장소에서 제거하고 싶을 때가 있습니다. 그 때 다음 명령을 사용합니다. git rm --cached 지울_파일_이름 디렉토리를 무시하려면 -r 옵션을 추가해줍니다. git rm -r --cached 지울_파일_이름 아래의 참고 글을 일일이 테스트해보다가 디렉토리를 그대로 날린 경우도 있습니다. 결과를 예측할 수 없는 명령을 실행할 때는 무식하게 디렉토리를 백업해놓고 합시다~!! :) 참고: http://stackoverflow.com/questions/1274057/making-git-forget-about-a-file-that-was-tracked-but-is-now-in-gitignore
[git] 이미 등록된 파일 무시하기소스를 처음 가져다가 git 로컬 저장소에 추가할 때는 미처 알지 못했는데 자동 생성되는 파일이라 저장소에서 제거하고 싶을 때가 있습니다. 그 때 다음 명령을 사용합니다. git rm --cached 지울_파일_이름 디렉토리를 무시하려면 -r 옵션을 추가해줍니다. git rm -r --cached 지울_파일_이름 아래의 참고 글을 일일이 테스트해보다가 디렉토리를 그대로 날린 경우도 있습니다. 결과를 예측할 수 없는 명령을 실행할 때는 무식하게 디렉토리를 백업해놓고 합시다~!! :) 참고: http://stackoverflow.com/questions/1274057/making-git-forget-about-a-file-that-was-tracked-but-is-now-in-gitignore
2014.11.03