如何编译使用pthread.h的ac程序?


14

我是一个初学者,是Ubuntu的新手。我刚刚安装了它,并想运行一个C程序。我不知道使用哪个平台或在哪里编写代码。我需要在程序中使用pthread.h头文件。谁能帮我?


Answers:


21

采用:

gcc MyProgram.c -o MyProgram -lpthread 

并且不要忘记在您的代码中包含POSIX库。它将编译您的代码。


2
默认情况下,GCC不包含pthread库。因此,您必须使用lpthread参数包含该库。
Parthiv Shah 2014年

另请注意,在gcc-4.8中,没有-lpthread参数man gcc。但是有一个-pthread争论。两者都可以在带有gcc-4.8的Ubuntu 14.04上正常工作。
伊利亚·林恩

1

如果要使用GCC或G ++在LINUX中使用pthread.h编译C程序,则必须在compile命令后使用–lpthread选项。

gcc xyz.c -o xyz -lpthread

这里,

gcc是编译器命令(编译器名称)
xyz.c是源文件名。
-o是创建objcect文件的选项。
xyz是对象(二进制)文件的名称。
-lpthread是pthread.h的选项

有关更多详细信息,请参见链接,其中包含全文。
在Linux中使用pthread.h编译C程序。


0

在Ubuntu中编译C / C ++程序所需的第一件事是安装GCC(Gnu编译器集合),它是build-essentialpackage的一部分,可通过运行以下命令来完成:

sudo apt-get install build-essential

然后,可以通过运行来测试是否已安装它gcc。如果您看到类似的错误Fatal error: file not provided(不确定确切的错误消息,但应该类似),则意味着您已准备好编译器。

为了编辑您的代码,您可以使用已经可用的Gedit,只需在Dash中搜索它即可。

现在,以下是编译C源文件的语法,请在文件所在的位置运行:

gcc MyProgram.c -o MyProgram

其中,switch -o是可选的,但提供提及二进制文件的名称,该文件应从源代码中创建。

然后只需运行./MyProgram即可运行您的二进制文件。

请注意,pthread.h正如您提到的那样,默认情况下,GCC应当可以使用(POSIX Thread),因此只要在C文件中包含它就可以完成此工作,以防万一它不可用,简单的Google搜索就可以了。;)

更新资料

太久了,没看过吗?检查一下。:D


0

如果给出错误,则可以通过交换参数来尝试相同的命令,例如

gcc -lpthread -o output_file program_pthread.c

之后./output_file提供程序输出,这program_pthread.c是您已实现的pthread程序。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.