小编han*_*tmk的帖子

在OSX Yosemite上是否破坏了libsasl2?缺少sasl_client_done

我在安装版本的libsasl2(Cyrus SASL)时遇到了一些麻烦.

特别是,似乎本地头文件和sasl_version报告版本2.1.26,但没有为全局函数sasl_client_done提供符号.

我很确定我应该有这个符号,因为:

  • 它位于提供的sasl/sasl.h头文件中
  • cyrsus sasl NEWS文件列出了"Implemented sasl_client_done()/ sasl_server_done()"作为2.1.24功能
  • 在约塞米蒂以外的任何地方都提供2.1.26

复制:

  • 请注意下面的示例打印
    • "impl:'Cyrus SASL',版本:33619994,专业:2,未成年人:1,步骤:26"
  • 在取消注释代码之后,示例在具有相同库版本的Linux安装上编译和执行

未注释的代码在yosemite上产生链接错误

Undefined symbols for architecture x86_64:
  "_sasl_client_done", referenced from:
      _main in foo-072675.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

使用以下命令调用编译器:

clang -Wall -Werror -lsasl2 -o foo foo.c -v
Run Code Online (Sandbox Code Playgroud)

与clang -v:

Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.10.0 -emit-obj -mrelax-all …
Run Code Online (Sandbox Code Playgroud)

c macos sasl osx-yosemite

5
推荐指数
1
解决办法
895
查看次数

标签 统计

c ×1

macos ×1

osx-yosemite ×1

sasl ×1