我正在尝试在Mac OS X上创建动态库。我使用qmake为此平台生成Makefile。 dylib构建正常,但它创建了特定于版本的名称和三个具有不同版本说明符的符号链接:
这是默认行为,我可能也不在乎,但是当我尝试在另一个项目中使用此库时,问题出现了:
LIBS += -Lpath/to/lib -lsimplezip
因此Xcode链接库 libsimplezip.dylib ,但是为了运行程序,动态库必须放在bundle中。为了实现这一点,我使用复制文件构建阶段。遗憾的是,它不起作用,因为Xcode解析了符号链接并复制了只有文件名为symlink的文件,即 libsimplezip.dylib ,而库的安装名称是 libsimplezip.1.dylib 。因此,该程序无法找到该库。
那该怎么办呢?我应该将库的安装名称更改为 libsimplezip.dylib ,因此它没有版本说明符吗?或者我应该指定某个库版本,如
LIBS += -Lpath/to/lib/libsimplezip.1.dylib
或许我应该以某种方式禁用版本说明符?常见的方法是什么?