如何使用包含线程的个人库编译C程序

时间:2016-06-28 08:05:50

标签: c gcc pthreads header-files gnome-terminal

我为我的C程序创建了一个库,其中包括线程。我通常使用Code :: Blocks而且我从来没有遇到过问题,但现在我需要直接从终端编译程序。我看到我需要写-lpthread,还要写我的库名(它的名字是my_lib.h)。我试图用gcc my_lib.c -c首先编译库,这有效;之后,我尝试了这个gcc main.c my_lib.h -o main -lpthread,但这不起作用。

那么编译使用my_lib.h的程序的正确sintax是什么?

1 个答案:

答案 0 :(得分:2)

我认为my_lib.c只是一个模块(目标文件)而不是共享库。

编译由两部分组成 - 编译成目标文件然后链接:

# compiling (note the -c)
gcc -c my_lib.c
gcc -c main.c
# linking (no -c, just specify target with -o)
gcc -o main main.o my_lib.o -lpthread

头文件永远不会被编译(显式),它们只包含在.c文件中,因此永远不会生成.o文件。