C++ linker presentation

This commit is contained in:
2026-02-24 10:21:15 +01:00
parent 0fda0d75fb
commit 6f3d98f388
32 changed files with 788 additions and 0 deletions

24
cpplinker/08_lto/build.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/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