Sublime Text에서 C/C++ 코드 컴파일 및 실행 설정

Sublime Text는 강력한 플러그인 생태계와 깔끔한 인터페이스로 개발자들에게 사랑받는 크로스 플랫폼 에디터입니다. 기본적으로는 텍스트 편집 기능만 제공하지만, 빌드 시스템을 구성하면 GCC 컴파일러를 직접 호출하여 C/C++ 프로그램을 작성하고 실행할 수 있습니다. 본 문서에서는 Windows, macOS, Ubuntu 세 가지 환경에서 Sublime Text를 C/C++ 개발 도구로 설정하 ...

9월 13일 13:00에 게시됨

C 언어로 첫 번째 프로그램 만들기: Hello World

코드 작성부터 실행까지의 전 과정 1. 첫 번째 C 프로그램 작성 C 언어에서 모든 프로그램은 하나 이상의 함수(function)로 구성된다. 그중에서도 프로그램의 시작 지점은 반드시 main 함수여야 한다. 이 함수가 없으면 프로그램은 실행될 수 없다. 다음은 간단한 "Hello World" 출력 프로그램이다: #include <stdio.h> int main() { printf("Hello World\n" ...

8월 13일 09:05에 게시됨

ARM 임베디드 보드용 GCC 로컬 컴파일러 빌드

일반적으로 임베디드 시스템 개발에서는 개발 PC에 Linux 가상 머신을 설정하고 크로스 컴파일 툴체인을 사용하여 실행 파일을 빌드합니다. 이렇게 생성된 실행 파일은 대상 ARM 보드로 복사되어 실행됩니다. 즉, 개발 PC에서 실행되는 GCC를 사용하여 ARM 보드에서 실행될 프로그램을 빌드하는 과정으로, 이를 크로스 컴파일이라고 합니다. 하지만 Automake로 제작된 ...

7월 18일 18:58에 게시됨

Ubuntu 기반 시스템 구성과 C++ 빌드 환경 구축 실무

시스템 인터페이스 기본 설정 콘솔 터미널의 가독성을 높이기 위해서는 폰트와 인코딩을 적절히 재구성해야 합니다. 먼저 패키지 관리기를 통해 콘솔 설정 도구를 실행합니다. sudo dpkg-reconfigure console-setup 화면이 띄워지면 UTF-8 인코딩을 선택한 후 OK를 누릅니다. 다음 단계에서 사용할 글꼴을 지정하는데, 서유럽 및 튀르크어족 언어를 지원하는 latin1 and la ...

7월 18일 05:55에 게시됨

Makefile 빌드 변수 CFLAGS와 LDFLAGS 활용법

개요Makefile에서 CFLAGS와 LDFLAGS는 각각 컴파일 단계와 링크 단계에 필요한 옵션을 전달하는 관례적인 변수입니다. 이 두 변수를 적절히 활용하면 빌드 과정을 체계적으로 제어할 수 있습니다. CFLAGS 상세CFLAGS(Compiler Flags)는 소스 파일(.c)을 목적 파일(.o)로 변환하는 컴파일 단계에서 사용되는 옵션들을 담당합니다. 주요 옵션옵션설명-I<경로>헤더 파 ...

7월 4일 16:42에 게시됨

리눅스와 VSCode를 이용한 C++ 프로젝트 개발 환경 구축 및 CMake 활용

C/C++ 컴파일 과정 C++ 소스 코드가 실행 가능한 프로그램으로 변환되는 과정은 여러 단계로 나뉩니다. 각 단계는 특정 역할을 수행하며, 이해하는 것이 빌드 시스템을 다루는 데 중요합니다. 1. 전처리 (Pre-compilation) 전처리기는 소스 파일(.cpp)과 헤더 파일(.h)을 처리하여 전처리된 파일(.i)을 생성합니다. 이 과정에서 #include, #define과 같은 전처리 지시어를 ...

7월 3일 17:03에 게시됨

Linux에서의 Windows 크로스 컴파일: MinGW32/MinGW64 도구 체인 활용 가이드

크로스 컴파일의 필요성과 MinGW 개념 MinGW(Minimalist GNU for Windows)는 리눅스 환경에서 윈도우 실행 파일(.exe, .dll)을 생성할 수 있도록 지원하는 완전한 개발 툴체인입니다. 이 도구를 사용하면: 윈도우용 애플리케이션을 리눅스에서 직접 빌드할 수 있음 OS 전환 없이 통합된 개발 환경 유지 가능 리눅스의 강력한 툴링과 패키지 시스템 활용 Cygwin과 ...

6월 13일 19:23에 게시됨

GCC 정적 타입 트리 구조 개선 및 최적화 전략

1. 기존 동적 트리 구조의 한계 분석 컴파일러 내부에서 추상 구문 트리(AST)는 소스 코드 분석과 목적 코드 생성을 연결하는 핵심 자료구조입니다. GNU 컴파일러 컬렉션(GCC)은 오랜 시간에 걸쳐 발전해왔지만, 현재 사용되는 동적 타입 기반의 노드 구조는 성능 저하와 유지보수 복잡도 증가라는 문제를 안고 있습니다. 1.1 유니온 기반 노드 구조의 문제점 기존 tree_no ...

6월 5일 00:31에 게시됨

정적 라이브러리와 동적 라이브러리

정적 라이브러리 정적 라이브러리(.a): 프로그램이 컴파일 및 링크 단계에서 라이브러리 코드를 실행 파일에 복사합니다. 프로그램 실행 시 더 이상 정적 라이브러리가 필요하지 않습니다. 정적 라이브러리 이름은 일반적으로 libXXX.a 형식을 가지며, 유효 이름은 접두사 lib와 접미사 .a를 제거한 XXX입니다. 링크 단계에서는 해당 바이너리 파일을 연결하므로, 소스 ...

5월 30일 17:41에 게시됨

gprof 프로파일러 활용 가이드

gprof 성능 분석 도구 1. 개요 gprof는 프로파일링 결과를 분석하는 도구입니다. 이 도구는 복합적인 방식으로 프로그램의 실행 정보를 수집합니다. 첫째, 계측(instrumentation) 기법을 사용하여 컴파일 시점에 함수 시작 지점에 카운터를 삽입함으로써 각 함수의 호출 빈도와 호출 횟수를 기록합니다. 둘째, 샘플링(sampling) 기법을 활용하여 프로그램 실행 중 일정한 ...

5월 27일 23:57에 게시됨