Mac OS X Sierra:架构x86_64的未定义符号

时间:2017-03-28 12:52:58

标签: c xcode macos clang linphone-sdk

我正在尝试在Mac OS X Sierra中基于Linphone构建一个C源文件,但收到以下错误。

这是C源文件的链接。 http://www.linphone.org/docs/liblinphone/group__basic__call__tutorials.html

编辑:

我正在尝试使用此命令编译源代码

  

clang -o tt tt.c -I / Users / softdev / Downloads / linphone-sdk-3.11.1-mac / include /

错误:

  
    

架构x86_64的未定义符号
    ld:找不到架构x86_64的符号
    clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

  

我试图更改目标cpu但是没有用。

我的系统有XCode 8.我们将不胜感激。

已编辑:完成输出

Undefined symbols for architecture x86_64:
  "_linphone_call_get_state", referenced from:
      _main in tt-ca2045.o
  "_linphone_call_ref", referenced from:
      _main in tt-ca2045.o
  "_linphone_call_unref", referenced from:
      _main in tt-ca2045.o
  "_linphone_core_destroy", referenced from:
      _main in tt-ca2045.o
  "_linphone_core_invite", referenced from:
      _main in tt-ca2045.o
  "_linphone_core_iterate", referenced from:
      _main in tt-ca2045.o
  "_linphone_core_new", referenced from:
      _main in tt-ca2045.o
  "_linphone_core_terminate_call", referenced from:
      _main in tt-ca2045.o
  "_ms_usleep", referenced from:
      _main in tt-ca2045.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 个答案:

答案 0 :(得分:4)

我得到了使用它编译的示例代码:

clang -o hello hello.c -Ilinphone-sdk-3/include -Llinphone-sdk-3/lib -llinphone -lmediastreamer_base

Clang的-I参数指向标题(.h)文件所在的位置

至于我的添加内容,-L指定了用于获取lib文件所在位置的路径。在您的情况下,它可能存在于-L/Users/softdev/Downloads/linphone-sdk-3.11.1-mac/lib

然后-l指定您要包含的dylib(删除lib前缀和dylib后缀。)

最后,您需要在指向的示例代码中添加缺失行。添加:

#include <unistd.h>
signal.h

之后