cross platform 2

C++ 언어의 ABI 이슈 및 호환성 가이드

C++ 언어의 ABI 이슈 및 호환성 가이드1. ABI란 무엇인가?ABI(Application Binary Interface)는 컴파일된 바이너리 코드(오브젝트 파일, 라이브러리, 실행 파일 등)가 서로 상호작용할 수 있도록 정의된 규칙입니다. C++에서는 이름 맹글링, 호출 규약, 객체 레이아웃, 예외 처리 등이 포함됩니다. C++의 복잡한 기능(클래스, 템플릿, 예외 처리 등)으로 인해 ABI 이슈는 특히 중요하며, 서로 다른 컴파일러나 환경 간 호환성 문제를 자주 일으킵니다.2. C++ ABI의 주요 이슈C++는 언어의 복잡성으로 인해 다양한 ABI 이슈가 발생합니다. 아래는 주요 이슈와 구체적인 예입니다.2.1 컴파일러 간 ABI 비호환성문제: GCC, Clang, MSVC와 같은 컴파일러는 이름..

dev 2025.05.20

모던 CMake 기본 가이드

모던 CMake 기본 가이드: 타겟 중심의 현대적인 빌드 시스템1. Makefile 대비 CMake의 장점크로스 플랫폼 지원Makefile은 Unix 계열 시스템에 특화되어 있지만, CMake는 Windows, Linux, macOS 등 다양한 플랫폼 지원Visual Studio, Ninja, Unix Makefiles 등 다양한 빌드 시스템 생성 가능타겟 중심의 의존성 관리명확한 의존성 전파 (PUBLIC, PRIVATE, INTERFACE)자동 헤더 의존성 추적현대적인 패키지 관리 (find_package)향상된 IDE 지원Visual Studio, CLion 등과 완벽한 통합자동 완성 및 인텔리센스 지원CMake 프리셋 지원2. 모던 CMake의 특징기존 CMake와의 주요 차이점타겟 중심 접근: ..

dev 2024.11.18