компиляция потоковой программы - PullRequest
0 голосов
/ 27 апреля 2011

Я написал небольшую потоковую программу, когда я скомпилировал cc filename.c, я получил несколько операторов во время компиляции, но когда я скомпилировал, используя -lpthread (cc filename.c -lpthread), он выполнил что этоэто требуется?Может кто-нибудь объяснить это подробно.это было бы очень полезно.

Ответы [ 3 ]

3 голосов
/ 27 апреля 2011

Функция pthread_create(), которую вы используете в своей программе, не является базовой функцией C и требует использования библиотеки.

Вот почему вы должны использовать этот командный переключатель -lpthread. Эта команда gcc говорит ему найти библиотеку с именем libpthread где-нибудь на вашем диске и использовать ее для предоставления механизмов создания потоков.

Предлагаю вам прочитать это, чтобы ознакомиться с понятием "библиотека": http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

0 голосов
/ 27 апреля 2011

Параметр -l обычно используется для указания библиотеки (в данном случае библиотеки pthread), которая должна быть связана с вашей программой.

Поскольку функции потоков часто находятся в отдельной библиотеке, вам нужна такая опция при создании программы, которая их использует, или вы получите ошибки компоновщика.

0 голосов
/ 27 апреля 2011

pthread - это нечто, называемое POSIX Threads.Это стандартная библиотека для потоков в Unix-подобных средах POSIX.

Поскольку вы собираетесь использовать pthread, вам нужно указать компилятору ссылаться на эту библиотеку.

Вы можете узнать больше о том, что такое lpthread и как он работает: https://computing.llnl.gov/tutorials/pthreads/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...