Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * Mengapakah penggunaan -static dengan -pthread untuk kompilasi C menyebabkan Kesalahan Segmentasi? * Bagaimana untuk menyelesaikan Kesalahan Segmentasi w

Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * Mengapakah penggunaan -static dengan -pthread untuk kompilasi C menyebabkan Kesalahan Segmentasi? * Bagaimana untuk menyelesaikan Kesalahan Segmentasi w

Patricia Arquette
Patricia Arquetteasal
2024-10-26 21:25:02965semak imbas

Here are a few question-based titles that fit the content of your article:

* Why does using -static with -pthread for C   compilation cause Segmentation Faults?
* How to resolve Segmentation Faults when statically linking pthread in C  ?
* Static vs. Dyn

Apabila menyusun kod C dengan g dan bendera -pthread untuk mendayakan multithreading, menggunakan -static untuk memautkan secara statik terhadap pustaka pthread boleh membawa kepada ralat Segmentasi. Ini berlaku kerana perpustakaan pthread yang dipautkan secara statik tidak mempunyai simbol lemah yang diperlukan, termasuk pthread_mutex_lock(), yang ditakrifkan dalam pustaka glibc.

Untuk menyelesaikan isu ini, pastikan yang boleh laku dipautkan secara dinamik terhadap pthread dengan menghantar -lpthread bendera ke penghubung. Ini akan memaksa pemaut untuk memasukkan simbol lemah yang diperlukan daripada versi perpustakaan kongsi pthread.

Sebagai alternatif, jika pemautan statik diperlukan, gunakan arahan berikut untuk menyusun atur cara:

g++ -o one one.cpp -Wall -std=c++11 -O3 -static -lrt -pthread \
    -Wl,--whole-archive -lpthread -Wl,--no-whole-archive

Pilihan -Wl,--whole-archive memaksa pemaut untuk memasukkan semua fail objek daripada perpustakaan pthread, memastikan bahawa simbol lemah yang diperlukan disertakan. Pilihan -Wl,--no-whole-archive mematikan tingkah laku ini untuk fail arkib seterusnya.

Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * Mengapakah penggunaan -static dengan -pthread untuk kompilasi C menyebabkan Kesalahan Segmentasi? * Bagaimana untuk menyelesaikan Kesalahan Segmentasi w. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn