Pastikan untuk -include your_header.h
Beginilah cara saya menyusun dan menggunakan bits/stdc++.hkoleksi.
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 bitsdi dalam direktori saat ini dan menyalin stdc++.hdari 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 .gchmengajukan, bukan .hdengan -include bits/stdc++.h
Itu adalah kunci bagi saya. Hal lain yang perlu diingat adalah Anda harus mengkompilasi *.hfile header dengan parameter yang hampir sama dengan yang Anda kompilasi *.cpp. Ketika saya tidak menyertakan -O3atau -pthreadmengabaikan *.gchheader 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
....