Skip to content

Latest commit

 

History

History
102 lines (80 loc) · 1.66 KB

File metadata and controls

102 lines (80 loc) · 1.66 KB

Compilation Guide

Basic Compilation

Single File

gcc -o output_file source_file.c
gcc -Wall -Wextra -std=c11 -o program program.c

Multiple Files

gcc -o program main.c utils.c helper.c
gcc -Wall -Wextra -std=c11 -o program *.c

Compilation Flags

Warning Flags

  • -Wall - Enable all common warnings
  • -Wextra - Enable extra warnings
  • -Werror - Treat warnings as errors
  • -pedantic - Strict ISO C compliance

Optimization Flags

  • -O0 - No optimization (default)
  • -O1 - Basic optimization
  • -O2 - Recommended optimization
  • -O3 - Aggressive optimization
  • -Os - Optimize for size

Debug Flags

  • -g - Include debug information
  • -ggdb - Generate debug info for GDB

Standards

  • -std=c89 - ANSI C (C89/C90)
  • -std=c99 - C99 standard
  • -std=c11 - C11 standard (recommended)
  • -std=c17 - C17 standard

Platform-Specific

Linux/macOS

gcc -Wall -Wextra -std=c11 -pthread program.c -o program -lm
./program

Windows (MinGW)

gcc -Wall -Wextra -std=c11 program.c -o program.exe
program.exe

Makefile Usage

Build All

make all

Build Specific Directory

make 01_basics

Clean Build Artifacts

make clean

Common Issues

Undefined Reference to pthread

gcc program.c -pthread -o program

Math Library

gcc program.c -lm -o program

Multiple Source Files

gcc -c file1.c
gcc -c file2.c
gcc file1.o file2.o -o program

Cross-Compilation

For ARM

arm-linux-gnueabi-gcc -o program program.c

For Windows from Linux

x86_64-w64-mingw32-gcc -o program.exe program.c