Saya bermain-main dengan lingkungan chroot, dan saya ingin memiliki kompiler C portabel sehingga saya dapat dengan mudah mengatur beberapa alat build dasar di setiap lingkungan tanpa harus memindahkan terlalu banyak perpustakaan di sekitar.
Gcc tampaknya cukup menarik untuk apa yang ingin saya lakukan, tetapi jika cukup mudah untuk membangun gcc statis, saya tidak akan keberatan beberapa lusin megabita.
Saya juga melihat Tiny C Compiler, yang lebih kecil tetapi masih terlihat seperti memiliki serangkaian fitur yang mengesankan. Namun, menjalankan ./configure --help di direktori sumber tidak mencantumkan opsi apa pun untuk membangun tcc secara statis, dan saya tidak yakin bagaimana hal itu dilakukan.
c
gcc
compiler
static-linking
math4tots
sumber
sumber
Jawaban:
Membangun biner statis harus sesederhana menjalankan gcc dengan -static, atau jika ld dipanggil langsung menggunakan -Bstatic. Mencoba
setelah berlari
configure
. Jika gagal, hasilnya akan jelas, misalnya rakit referensi yang tidak ditentukan pada waktu tautan.sumber
make CFLAGS=-static
barusan. Buat cetakan peringatan tentangdlopen
, maka ketika saya mencoba menjalankan executable di lingkungan chroot, saya/usr/lib/crt1.o .. crti,o .. crtn.o
tidak menemukan kesalahan. Apakah itu yang Anda maksud dengan "referensi tidak terdefinisi pada waktu tautan"?Anda juga dapat mengambil versi yang dikompilasi dengan static-get
sumber