Build the project:
make
Run a solution:
./build/aoc_solve <day>
Example: ./build/aoc_solve 4
runs Day 4's solution
-
Install tools (first-time setup):
./util/setup_tools.sh
-
Build with debug symbols:
make debug
-
Run Valgrind analysis:
make valgrind DAY=<day_number>
-
Analyze with KCachegrind:
kcachegrind valgrind_output/callgrind_day<day_number>.out
aoclib/
├── include/ # Header files
│ └── aocutil/ # Utility headers
├── src/
│ ├── main.c # Main entry point
│ └── days/ # Individual day solutions
├── input/ # Input files (e.g., day4.txt)
├── util/ # Utility scripts
├── Makefile # Build configuration
└── CMakeLists.txt # CMake configuration