CMake: target_link_libraries 사용법

CMake로 여러 타깃을 나눠 빌드하다 보면 "라이브러리는 분명히 링크했는데 헤더를 못 찾는다"는 에러를 자주 마주친다. 원인은 대부분 target_link_libraries의 PUBLIC/PRIVATE/INTERFACE 키워드를 잘못 골랐기 때문이다. 이 세 키워드는 단순히 "링크한다/안 한다"가 아니라,…

Continue ReadingCMake: target_link_libraries 사용법

CMake 사용법

C++ 프로젝트가 파일 몇 개를 넘어서면 컴파일 명령이 금방 복잡해진다. 소스 파일이 여러 디렉터리에 흩어지고, 라이브러리를 따로 빌드해서 링크해야 하고, 리눅스에서는 GCC, macOS에서는 Clang, 윈도우에서는 MSVC를 각각 다르게 호출해야 한다.…

Continue ReadingCMake 사용법

Cloudways → Vultr WordPress 이전 완전 가이드

Cloudways는 관리형 호스팅이라 편하지만 트래픽이 늘면 비용이 빠르게 올라간다. 같은 사양의 순수 VPS로 옮기면 비용을 크게 줄일 수 있는데, 이 글은 Cloudways에서 운영 중인 WordPress를 Vultr VPS(Ubuntu 24.04 + Nginx…

Continue ReadingCloudways → Vultr WordPress 이전 완전 가이드

fatal error: gelf.h: No such file or directory 오류

Linux 커널을 소스에서 빌드하다 보면 tools/objtool을 컴파일하는 단계에서 gelf.h 헤더를 찾지 못해 빌드가 중단되는 경우가 있다. objtool은 커널 빌드 시 오브젝트 파일의 제어 흐름을 분석해 ORC unwinder 테이블 생성, retpoline/livepatch…

Continue Readingfatal error: gelf.h: No such file or directory 오류

Ubuntu sudo 리스트 추가하기

사용자를 sudo 그룹에 추가하거나, 특정 명령만 허용하는 세밀한 권한 설정 방법을 정리한다. sudo 그룹에 추가 가장 간단한 방법이다. 적용은 재로그인 이후부터다. sudo usermod -aG sudo username 현재 세션에서 즉시 반영하려면:…

Continue ReadingUbuntu sudo 리스트 추가하기

Tailscale 사용법

Tailscale은 WireGuard 기반의 메시(mesh) VPN 도구다. 기존 VPN과 달리 중앙 게이트웨이 서버 없이 각 노드가 서로 직접 연결되는 P2P 구조라 속도가 빠르고 설정이 단순하다. 홈 서버, 라즈베리파이, 클라우드 인스턴스, 개발…

Continue ReadingTailscale 사용법

라즈베리파이에 NoMachine 설치하기

라즈베리파이를 원격으로 제어하는 방법은 여러 가지가 있지만, NoMachine은 빠른 화면 전송 성능과 낮은 지연(latency), 쉬운 설정 덕분에 개발자나 시스템 엔지니어에게 좋은 선택이다. 특히 GUI 환경에서 디버깅하거나 IDE를 사용할 때 VNC보다…

Continue Reading라즈베리파이에 NoMachine 설치하기

Yocto 환경에서 커널에 Clang/LLVM 빌드 환경 적용하기

아래는 (1) 커널 레시피만 Clang으로 빌드하는 방법과, (2) 배포판 전체를 Clang toolchain으로 전환하는 방법을 각각 “Yocto에서 실제로 적용 가능한 형태”로 정리한 것이다.핵심 변수/흐름은 Yocto의 toolchain/clang 체계와 meta-clang의 TOOLCHAIN 스위치에 기반한다.…

Continue ReadingYocto 환경에서 커널에 Clang/LLVM 빌드 환경 적용하기