在OS X上使用Clang与库进行静态链接

时间:2015-06-29 04:00:12

标签: c linker clang dylib

我正在编写一个使用libssh的C程序。我的程序包括ext.h和c1.h.我将它们编译为ext.o和c1.o,我试图链接这些文件。我的libssh dylib文件位于

SSHLIB = -L/usr/local/Cellar/libssh/0.6.3_2/lib

所以在我的Makefile中,我试图执行

clang -o c1 ext.o c1.o $(SSHLIB) 

然而,它会引发很多错误,例如

Undefined symbols for architecture x86_64:
"_ssh_connect", referenced from:
  _ext in ext.o
"_ssh_disconnect", referenced from:
  _ext in ext.o
"_ssh_free", referenced from:
  _ext in ext.o

我试着查看目录SSHLIB,并尝试

nm -gU libssh.dylib

我可以看到它包含许多功能,包括_ssh_connect和_ssh_disconnect。为什么Clang无法链接他们?我该如何解决?

0 个答案:

没有答案