본문 바로가기

전체 글

(705)
git 명령어 정리 [1. 개요] git 사용 시, 자주 사용하지는 않지만 간혹 필요할 수 있는 명령어 정리 [2. 예제] --recurse-submodules git clone --recurse-submodules https://github.com/valhalla/valhalla myproject 어떤 project 를 작업 할 때, 해당 project 는 다른 git repository 를 참조해서 구현 할 수 있다. 이 때, 의존성이 있는 git repository 내 모든 파일을 자신의 project 에 전부 저장 한후, git 에 올리는 것이 아니라 url 형태로, (url 링크 만) git 에 올릴 수 있는데, 이 때, 자신의 repository 를 clone 할 때, 의존성이 있는 다른 repository 까지..
go build 옵션 [1. 개요] go 로 코드 작성 후, 컴파일 시 유용한 옵션 정리 [2. 예제] trimpath go build --trimpath go 언어에서 panic() 호출 시, 예외가 발생했을 때, stack trace, source file name, line number 등을 출력해주는데, source file name 이 compile 한 환경의 절대 경로로 출력된다. 이 때, --trimpath 를 사용하면, 절대 경로 대신, source file 이름만 출력된다. # 정확히는 좀 다른데, 쉽게 생각하면 위와 같다.
컴파일 링커 옵션 [1. 개요] g++ 로 컴파일 시, 링킹 시 유용한 옵션 정리 [2.1 예제] 스택 사이즈 변경 g++ -Wl,--stack,1677216 test.cpp 함수 호출 시, 이 함수 내 지역에 선언한 buf 의 크기가 꽤 큰 경우, 함수 호출 시, 바로 segmentation fault 가 발생할 수 있다. 함수 호출을 위해, 컴파일 시, 일정 크기의 스택에 모든 지역 변수를 저장 할 수 있어야 하는데, buf 크기가 이 크기를 벗어나서 문제가 된 것이다. 이 경우 디폴트 스택 크기를 꽤 크게 잡아주면 runtime 오류를 해결 할 수 있다. [2.2 예제] 외부 라이브러리 링킹 g++ main.cpp -lrdkafka++ -L"./" rdkafka 를 사용하는 c++ 코드 컴파일 시, rdfkafka ..