【问题标题】:Static FreeType has dependencies (libfreetype.6.dylib)静态 FreeType 有依赖项 (libfreetype.6.dylib)
【发布时间】:2014-11-12 13:38:04
【问题描述】:

在 OSX 上。用 make 构建。

我的设置:

./configure --enable-static=yes --enable-shared=no

我没有改变原版 FreeType 2.5.3 下载的其他内容。

这会导致 libfreetype.a,当添加到项目中时(将二进制文件与库链接),我会遇到各种构建错误,而这些错误是使用阴影库时不会遇到的:

"_BZ2_bzDecompress", referenced from:
  _ft_bzip2_file_fill_output in libfreetype.a(ftbzip2.o)
 "_png_create_info_struct", referenced from:
  _Load_SBit_Png in libfreetype.a(sfnt.o)
"_inflateInit2_", referenced from:
  _FT_Stream_OpenGzip in libfreetype.a(ftgzip.o)

等等等等

所以如果我用这个 ./configure 构建它会变得陌生:

./configure --enable-static=yes --enable-shared=no  --with-png=no --with-bzip2=no --with-zlib=no

然后我可以构建我的项目,但是当我运行它时,我收到一个错误,说 /opt/local/lib/libfreetype.6.dylib 找不到。当然不是,因为那只是使用共享的 FreeType 构建构建的。

我如何构建一个完全无依赖的 FreeType(就像网站上说的那样)?

非常感谢, 伊恩

【问题讨论】:

  • 我正在使用共享的 FreeType 库来解决这个问题。静态版FreeType找共享版好像有点傻啊!?
  • 我设法让 FreeType 的静态库正常工作,我已经发布了答案...

标签: xcode macos freetype


【解决方案1】:

我找到了成功——最终——通过调整 this answer 并为 blib.png,bzip 添加排除项

忽略 iOS 部分...

./configure CFLAGS="-arch i386" --without-zlib --without-png --without-bzip2
make clean
make
cp objs/.libs/libfreetype.a libfreetype-i386.a

./configure CFLAGS="-arch x86_64" --without-zlib --without-png --without-bzip2
make clean
make
cp objs/.libs/libfreetype.a libfreetype-x86_64.a

lipo -create -output libfreetype.a libfreetype-i386.a libfreetype-x86_64.a

这对我使用 FreeType 2.5.5 + Yosemite + Xcode 6.2 的组合很有用

【讨论】:

  • 这种方法对我有用,但我还必须在配置命令中添加 --without-harfbuzz 标志。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
相关资源
最近更新 更多