如何链接到gcc中的libatomic库

时间:2017-03-19 14:50:36

标签: gcc dll linker

我在我的库代码中使用标题<atomic>并尝试将该程序与libatomic.so链接。

每当我尝试链接所有目标文件并创建我的库的SO文件时,我都会收到错误

can not find /usr/lib64/libatomic.so.1.0.0

我在路径/usr/lib/gcc/x86_64-redhat-linux/4.8.5下有这样的文件。 作为libatomic.so。名称中未指定版本。

我尝试在创建共享库的gcc命令中使用/usr/lib/gcc/x86_64-redhat-linux/4.8.5选项指定路径-L,但仍然要求lib /usr/lib64/libatomic.so.1.0.0链接原子代码。

那么我如何针对/usr/lib/gcc/x86_64-redhat-linux/4.8.5/libatomic.so创建库? 当我在gcc命令的-latomic命令行选项中没有指定任何版本时,为什么要求libatomic.so.1.0.0。

我的gcc版本是4.8.5-4,OS是redhat 7.2

1 个答案:

答案 0 :(得分:0)

查看文件/usr/lib/gcc/x86_64-redhat-linux/4.8.5/libatomic.so的内容!您可能会发现它不是一个实际的库,而只是一行看起来像这样的文本:

INPUT ( /usr/lib64/libatomic.so.1.0.0 )

因此,当您使用“ -latomic”时,将拾取该文件(根据需要!),然后链接器继续查找/usr/lib64/libatomic.so.1.0.0-缺少该文件。要拥有它,您可能应该安装“ libatomic”软件包(yum install libatomic)。您还可以使用“ yum whatprovides /usr/lib64/libatomic.so.1.0.0”来自动查找应该提供此文件的软件包。