Apabila g Pautan Statik Pthread, Menyebabkan Kerosakan Segmentasi: Penjelasan dan Penyelesaian
Masalah:
Apabila menyusun atur cara C dengan g dan bendera -pthread untuk memaut dengan pustaka pthread, tetapi secara statik (-statik), atur cara menghadapi Kesalahan Segmentasi.
Penjelasan:
Simbol Lemah:
Pautan Dinamik lwn. Pautan Statik:
Resolusi Pautan Tidak Lengkap:
Penyelesaian:
Kepada paksa pemaut untuk melihat semua simbol daripada perpustakaan pthread dalam atur cara yang dipautkan secara statik, gunakan:
g++ -o one one.cpp -Wall -std=c++11 -O3 -static -pthread \ -Wl,--whole-archive -lpthread -Wl,--no-whole-archive
Nota Tambahan:
WL_WHOLE_ARCHIVE_HACK="-Wl,--whole-archive" WL_NO_WHOLE_ARCHIVE_HACK="-Wl,--no-whole-archive" AC_SUBST(WL_WHOLE_ARCHIVE_HACK) AC_SUBST(WL_NO_WHOLE_ARCHIVE_HACK) mytarget_LDADD = @WL_WHOLE_ARCHIVE_HACK@ -lpthread @WL_NO_WHOLE_ARCHIVE_HACK@
Atas ialah kandungan terperinci Mengapa Program C Saya Dengan Pautan Statik dan Pthreads Mengakibatkan Ralat Segmentasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!