无法让FreeType库在Mac OS X Mountain Lion中运行

时间:2013-09-19 11:49:43

标签: xcode macos linker linker-errors freetype

我有一个OpenGL项目,可以在Windows中正常工作/编译 我想将应用程序移植到Mac OS 我在Mac上启动并运行了应用程序,但项目中的文本不可见。
所以我决定在Mac中使用第三方库进行文本渲染,我遇到了FreeType,它有很多优点,比如抗锯齿和UNICODE支持。

所以,我在我的Mac上下载了这个库,'。'配置它,按照惯例做'make'和'make install'。
然后在Xcode中我为include目录和库目录设置搜索路径,

分别 / usr / local / include / usr / local / lib

然后我在Xcode中添加了“其他链接器标志”, freetype-configure --libs 给了我以下标志 -
- L / usr / local / lib -lfreetype -lz -lbz2 ,我在Xcode中添加了它们。

现在,每当我包含freetype头时都没有问题,但是当我从freetype库中调用任何方法时,它会给我以下链接器错误。

Linker Errors By Xcode

在查看谷歌后我发现我必须相应地设置构建目标,我这样做了,现在我的应用程序构建为 i386 x86 ,问题仍然存在。

我在配置freetype时也尝试了以下标志./configure CC =“gcc -arch i386”CXX =“g ++ -arch i386” 这也没有帮助。

我对Mac OS X / Unix环境比较陌生,我以前在VS 2008的Windows上运行了freetype。任何帮助都将非常感谢。

1 个答案:

答案 0 :(得分:0)

什么:

您的库搜索路径中似乎有多个libfreetype.dylib文件。

/ master_repository / memb/ lib 包含一个 / usr / local / lib 包含另一个

-lfreetype 是一种方便的方法,可以告诉链接器在使用 -L 标志指定的所有目录中查找名为libfreetype.dylib的文件。因为-L / master_repository ...位于链接器参数列表中的-L / usr / local / lib之前,所以链接器使用它找到的第一个实例并尝试链接到该实例。

修正:

  • 重新组织 -L 标记,以便 -L / usr / local / lib 位于另一个之前。如果可以,请避免使用此选项。

  • 删除额外的搜索路径,只留下相关的搜索路径。

  • 明确指定库,而不是依赖方便的 -l <​​/ strong>,将 -lfreetype 替换为库的完整路径: / usr /本地/ LIB / libfreetype.dylib