[英]Demystifying gcc under lpthreads
在这些日子里,我正在玩线程库并试图实现一些功能。 其中一个教程说要运行程序使用:
gcc -lpthread -lrt -lc -lm project1.c scheduler.c -o out
首先,我需要深入了解gcc在每一行中所做的事情,
lpthread用于什么? lrt -lc -lm的贡献是什么?
project1.c和scheduler.c是一起编译的,所以我应该理解什么? 我检查了
代码和其中任何一个都没有包含在project1.c或scheduler.c中。
其次,作者声明要运行你必须使用的程序
./out number filename (For example, ./out 2 sample.txt)
为了使这些清楚,我理解主函数获取数字和sample.txt作为输入。(?)
谢谢你的回答并让我清楚。
-lxxx
表示链接名为libxxx
的库,因此您告诉它链接libpthread
, librt
, libc
和libm
。
您似乎不太可能需要指定链接libc - 这通常是默认情况下发生的。 libm是数学库,因此对于大多数执行浮点运算的代码都需要它。 libpthread包含pthreads函数(例如,pthread_create),因此创建/使用pthreads的任何代码都需要链接到它。
project1.c和scheduler.c一起编译意味着一个中的代码可以调用另一个中的函数。
您对命令行参数的理解似乎是正确的。
作为输出显然它给出了“出去”
是的你用-o out
指定了这个
gcc不仅将.c
文件编译为.o
文件,还将编译后的文件和使用-l
指定的库链接到二进制文件。
./out number filename (For example, ./out 2 sample.txt)
数字和文件名是程序的两个参数,名称为out。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.