gcc 3

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

GCC 설치 (`macOS`, `Windows`)

macOS 및 Windows 에 GCC 설치하기 MAC OSbrew : macOS 용 패키지 관리자 https://brew.sh/index_kobrew 사용 gcc 설치 Command line tools 설치xcode 없이 개발툴 설치 $ xcode-select --installclang 이 설치되고 gcc로 심볼링 링크 걸려 있음 $ gcc -vConfigured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1Apple clang version 12.0.5 (clang-1205.0..

dev 2025.05.19

GNU C++로 정적 라이브러리 링크하는 방법

GNU C++ 프로그램에서 정적 라이브러리를 링크하는 방법정적 라이브러리 사용사용 시 고려 사항프로그램 크기 증가: 정적 라이브러리를 사용하면 실행 파일 크기가 크게 증가할 수 있슴라이브러리 업데이트: 정적 라이브러리를 사용하면 라이브러리 업데이트 시 프로그램을 다시 컴파일해야 필요사용 장점운영 체제 의존성 감소: 정적 라이브러리를 사용하면 프로그램 실행에 필요한 모든 라이브러리가 실행 파일에 포함되어 있어 운영 체제에 동일한 라이브러리가 설치되어 있지 않아도 프로그램을 실행보안 강화: 정적 라이브러리를 사용하면 공유 라이브러리 공격과 같은 보안 취약점에 대한 위험을 줄일 수 있음성능 향상: 정적 라이브러리를 사용하면 프로그램 실행 속도를 향상시킬 수 있음정적 라이브러리 링크링크 옵션-static C 런..

dev 2025.05.19