【发布时间】:2018-09-11 18:59:42
【问题描述】:
我使用 pthread 库做了一个“Hello World”程序。 我用这种简单的方式编译它:
$ gcc main.c -lpthread
根据 gcc 文档(“链接选项”部分):
-llibrary [...] 链接器在标准目录列表中搜索该库,该库实际上是一个名为 liblibrary.a 的文件。链接器 然后使用此文件,就好像它已按名称精确指定。 [...]
所以,我的理解是:gcc 正在寻找 libpthread.a 。给定 .a 结尾,这应该是一个静态库。
但是,这是动态链接的:
$ ldd a.out
linux-vdso.so.1 => (0x00007fffde3c3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb345820000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb345456000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb345a3d000)
我错过了什么?
【问题讨论】:
标签: gcc linker shared-libraries static-libraries