【问题标题】:Linux shared library woes [duplicate]Linux共享库问题[重复]
【发布时间】:2013-10-04 10:18:31
【问题描述】:

我创建了一个共享库,将其复制到 /usr/lib,运行 ldconfig(使用 -v 运行时它显示在列表中)并将 .h 文件复制到 /usr/include。 但是,当我尝试使用 lib #include 时,我得到“未定义对 'Method1' 的引用。 我做错了什么? 我的 makefile 没有特殊命令,因为所有文件都在标准位置。

【问题讨论】:

  • 链接器不是魔法。使用 -lMyLibrary(小写 L)告诉链接器在您的库中查找符号。

标签: c shared-libraries


【解决方案1】:

#include 将在您编译源代码时包含头文件。

但是,您还需要链接到您的共享库。对于大多数 unix 编译器,这是使用 -l flag

对于名为 libFoo.so 的共享库,在链接您的程序时使用标志 -lFoo

【讨论】:

  • 我试图变得聪明,并在整个文件中包含#pragma GCC可见性(隐藏),这删除了我需要暴露的功能 - 像往常一样的用户错误!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2015-11-21
  • 2023-03-31
  • 2023-03-10
相关资源
最近更新 更多