Files
strangecpp/cpplinker/08_lto/build.sh
2026-02-24 10:21:15 +01:00

25 lines
574 B
Bash

#!/bin/bash
set -e
echo "=== Build WITHOUT LTO ==="
g++ -std=c++17 -O2 -c foo.cpp -o foo.o
g++ -std=c++17 -O2 -c main.cpp -o main.o
g++ -O2 foo.o main.o -o app_nolto -lm
echo "Created app_nolto"
echo ""
echo "=== Build WITH LTO ==="
g++ -std=c++17 -O2 -flto -c foo.cpp -o foo_lto.o
g++ -std=c++17 -O2 -flto -c main.cpp -o main_lto.o
g++ -O2 -flto foo_lto.o main_lto.o -o app_lto -lm
echo "Created app_lto"
echo ""
echo "=== Compare binary sizes ==="
ls -l app_nolto app_lto
echo ""
echo "=== Run both ==="
echo -n "no-lto: "; ./app_nolto
echo -n "lto: "; ./app_lto