【问题标题】:Shared Library on Mac with Eclipse使用 Eclipse 在 Mac 上共享库
【发布时间】:2014-06-20 03:44:01
【问题描述】:

我有一个大问题,我无法在我的 Mac 上使用 Eclipse 创建共享库。 每次我尝试编译时,都会收到这两条 2 错误消息:
make: *** [libOptlist-shared.dylib] 错误 1 ​​Optlist-shared C/C++ 问题
未找到架构 x86_64 Optlist-shared C/C++ 问题的符号

我只在 Mac 上收到错误。我也尝试在 Windows 和 Linux 上创建这个共享库,但没有出现错误。 如果有人可以帮助我,我会非常高兴。 谢谢。

【问题讨论】:

  • "symbol(s) not found" 意味着它尝试使用未在任何地方定义的函数或全局变量。你需要找到那个列表。
  • 我忘记发布 eclipse 在构建我的共享库时给我的一些附加信息:架构 x86_64 的未定义符号:“_free”,引用自:optlist.o 中的 _FreeOptList “_malloc”,引用自: optlist.o 中的 _MakeOpt “_perror”,引用自:optlist.o 中的 _MakeOpt “_strlen”,引用自:optlist.o 中的 _GetOptList “_strrchr”,引用自:optlist.o 中的 _RemovePath 对我来说,编译器似乎可以'找不到标准函数?对吗?
  • 是的,听起来差不多。你在链接-lSystem吗?
  • 不,我没有与-lSystem 链接,但我试过了,这似乎是问题所在。现在我没有错误了,非常感谢!

标签: c eclipse macos shared-libraries


【解决方案1】:

Eclipse 默认不与 libSystem 链接,因此链接器必须显式传递-lSystem

【讨论】:

  • 现在唯一的事情是:如果我想使用它,我必须将 *.dylib 文件复制到 /usr/lib 中?还是有别的办法?
  • 您应该能够为库定义一个“安装路径”,这是动态链接器在运行您的程序时期望找到它的位置。我相信默认安装路径确实是 /usr/lib。
猜你喜欢
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 2018-10-18
  • 2015-09-30
  • 2015-12-11
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多