Pastikan untuk -include your_header.h
Beginilah cara saya menyusun dan menggunakan bits/stdc++.h
koleksi.
Kode
#include <bits/stdc++.h>
Kemudian saya menemukan lib dengan mengkompilasi file saya dengan -H dan melihat output
g++ sol.cpp -H -O3 -pthread -lm -std=c++14 -o executable
dimana saya melihat
. /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h
Jadi saya membuat direktori baru bits
di dalam direktori saat ini dan menyalin stdc++.h
dari sana.
Lalu aku lari
g++ bits/stdc++.h -O3 -std=c++14 -pthread
yang dihasilkan bits/stdc++.gch
Biasanya saya mengumpulkan kode saya melalui
g++ sol.cpp -O3 -pthread -lm -std=c++14 -o executable
, tapi saya harus memodifikasinya menjadi
g++ sol.cpp -include bits/stdc++.h -O3 -pthread -lm -std=c++14 -o executable
karena hanya memutuskan untuk .gch
mengajukan, bukan .h
dengan -include bits/stdc++.h
Itu adalah kunci bagi saya. Hal lain yang perlu diingat adalah Anda harus mengkompilasi *.h
file header dengan parameter yang hampir sama dengan yang Anda kompilasi *.cpp
. Ketika saya tidak menyertakan -O3
atau -pthread
mengabaikan *.gch
header yang telah dikompilasi sebelumnya.
Untuk memeriksa apakah semuanya benar Anda dapat mengukur perbedaan waktu dengan membandingkan hasil
time g++ sol.cpp ...
atau lari
g++ sol.cpp -H -O3 -pthread -lm -std=c++14 -o executable
lagi dan cari jalur header dan jika Anda sekarang mendapatkan !
sebelum jalur perpustakaan, misalnya
! ./bits/stdc++.h.gch
....