编译一个线程程序

时间:2011-04-27 11:46:57

标签: c multithreading

当我编译cc filename.c时我编写了一个小线程程序,我在编译期间得到了一些语句,但是当我使用-lpthread(cc filename.c -lpthread)编译时,它被执行了什么是-lpthread为什么是需要吗?任何人都可以详细解释这个。这将是非常有帮助的。

3 个答案:

答案 0 :(得分:3)

您在程序中使用的pthread_create()函数不是基本的C函数,并且要求您使用库。

这就是你必须使用这个命令开关-lpthread的原因。 这个gcc命令告诉他在磁盘的某个地方寻找一个名为libpthread的库,并用它来提供线程创建机制。

我建议您阅读此内容以熟悉“库”概念:http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

答案 1 :(得分:0)

pthread是一种称为POSIX线程的东西。它是Unix类POSIX环境中线程的标准库。

由于您要使用pthread,您需要告诉编译器链接到该库。

您可以详细了解lpthread是什么以及它是如何工作的:https://computing.llnl.gov/tutorials/pthreads/

答案 2 :(得分:0)

-l选项通常用于指定应与程序链接的库(在本例中为pthread库)。

由于线程函数通常位于单独的库中,因此在构建使用它们的程序时需要这样的选项,否则会出现链接器错误。

相关问题