블로그

Zerif는 사용자 정의 전면 페이지를 지원합니다

cross build 시 CMake Toolchain file 작성법

CMAKE로 이용하여 크로스 빌드하는 일이 많아짐에 따라 cmake toolchain file을 별도로 작성하게 된다. CMAKE_SYSROOT 는 기본적으로 프로그램은 어디 path에 라이브러리를 찾는지 기술되어 있다. 하지만 내가 컴파일한 환경과 실행시키는 환경의 lib가 다른 경우가 종종 발생하는데 이때 CMAKE_SYSROOT가 필수적이다. cmake 빌드 시 -DCMAKE_TOOLCHAIN_FILE 해당 파일을 설정해두면 된다. 참고시 좋은 링크 https://docs.oracle.com/cd/E88353_01/html/E37853/cmake-toolchains-7.html https://android.googlesource.com/platform/ndk/+/master/build/cmake/android.toolchain.cmake

신한 카드 더 모아 팁 (추가 중)

더 모아 카드를 작년 12월달에 계약을 하였다. 혜택은 다음과 같다 이 카드가 꽤 재미있는게 5000원 이상의 계약의 건은 잔돈은 전부 페이백이 된다는 점이다. 예로 5999원을 구매하게되면 999원만큼 페이백이 된다. 1. 팔라고 어플 사용 해당 어플은 기프티콘을 중고거래하는 어플입니다. 원래라면 상품권 거래 목적으로는 더모아 적립이 안되지만 가맹정번호가 있어 5999원 적립이 가능하게 된다. 2. 네이버 페이 및 소개 더보기 신한 카드 더 모아 팁 (추가 중)[…]

v412 사용하기

리눅스에서는 카메라 캡처하기 위해 유저 인터페이스인 v412를 제공한다. 그래서 v412에 대해 정리를 해볼려고 한다. v412는 다음과 같은 과정을 진행한다. 장치 열기 비디오 장치 데이터 얻기 비디오 장치 데이터 설정 비디오 버퍼 요청 카메라의 스트림을 킨다. 1. 장치 열기 리눅스인 경우 드라이버는 파일이기 파일로 취급을 한다. 그래서 장치를 여는 행위는 파일을 여는 행위랑 같습니다. 코드는 다음과 소개 더보기 v412 사용하기[…]

커밋 가이드의 규칙

잘된 커밋가이드는 무엇일까? 커밋 메세지는 개인의 나타나 있다구 생각한다. 그러다보니 커밋 메세지에서는 작업한 Job에대한 내용이 자기만 볼수있는 경우가 많고 제 3자가 커밋메세지를 봤을때 무슨 내용인지 모르는 경우가 자주생긴다. 결국 코드를 보는 최악의 경우가 발생한다. 나는 이를 줄이기 위해 여러가지를 찾았고 그중 하나가 바로 아래이다. Example More Examples: feat: (new feature for the user, not a 소개 더보기 커밋 가이드의 규칙[…]

크리티컬섹션(critical section) 은 정말로 유저 영역일까?

몇몇 책들과 네이버 블로그 및 구글 블로그에서는 크리티컬 세션에 대해 설명을 유저영역이여 세마포어와 뮤덱스에 비해 빠르다구 설명에 나와있다. 하지만 반대로 생각하자면 어떻게 프로그램 레벨에서 커널 함수를 호출안하고 해당 스레드를 중지 시킬수 있을까? 라고 반문을 하면 불가능하다. 오늘은 이거에 대해 알아 볼려고 한다. Windows의 OS는 기본적으로 소스코드는 비공개지만 이를 역 리버싱해서 구현한 OS가 존재 한다. ReactOS이며 소개 더보기 크리티컬섹션(critical section) 은 정말로 유저 영역일까?[…]

게임에서의 공간

물체공간(local space) : 물체가 어디로 움직이는 간에 원점으로 부터의 각 정점까지의 거리의 변화는 없다. 예로 들어 다음과 같다. 사과가 사람머리위에 있다고 가정하고 사람이 움직인다고 해도 사과 그자체는 변화가 없다. 이를 local space라고 한다. 월드 공간(world space) : 원점으로 부터 각 물체의 정점들까지의 거리를 월드 공간이라고 한다. 뷰공간(view space) : 흔히 말하는 시점이다. 다른 시점으로 해당 소개 더보기 게임에서의 공간[…]

디스코드 한/일 번역봇 제작 과정기

일본인과 대화를 하기 위해 번역봇을 만들었다. 언어 선택은 C#으로 하였고 그 이유는 다음과 같다. 언어가 굉장히 이쁘다 C#을 좀 더 잘쓰고 싶어서 이다. 이 간단한 이유로 C#으로 선택하였고 프레임워크는 Discord.Net을 사용하였다. 이 두가지의 스펙을 정하고 번역 API는 대표적이라고 말하는 구글 API 사용하였다. 만들고보니 두가지의 반응이 있었다. 다른 외국어도 번역이 되도록 만들어 달라 위 사진처럼 번역봇이 소개 더보기 디스코드 한/일 번역봇 제작 과정기[…]

Windows Trampoline

최근에 약간 실력을 키우기 위해서 아시는분에게 과제를 받고있다. 위 과제는 Foo을 호출시시작과 끝에 Boo와 Hoo과 출력되게 만들어야한다는것이다. 처음에는 std::cout와 std::endl 오버로딩으로 풀었지만 이는 답이 아니였다. 그래서 생각해낸게 코드패치이다. 코드 패치란 파일이나 메모리상의 코드영역을 수정하는 것이며 이를 통해 기존의 동작이 아닌 별도의 동작을 하게되는것이다. 코드 패치하는 코드는 위와 같다. 기본적으로 코드영역은 읽기 영역이기 때문에 쓰기 영역으로 소개 더보기 Windows Trampoline[…]