加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FreeType库和“对FT_Init_FreeType的未定义引用”

发布时间:2020-12-16 10:32:04 所属栏目:百科 来源:网络整理
导读:来自 PHP,这是我第一次使用C/C++(所以对我来说很容易).我正在关注 this tutorial使用FreeType库编写一个简单的脚本.以下编译就好了: #include ft2build.h#include FT_FREETYPE_Hmain() { FT_Library library; FT_Face face;} 这告诉我FreeType库随时可供编
来自 PHP,这是我第一次使用C/C++(所以对我来说很容易).我正在关注 this tutorial使用FreeType库编写一个简单的脚本.以下编译就好了:

#include <ft2build.h>
#include FT_FREETYPE_H

main() {
    FT_Library library;
    FT_Face face;
}

这告诉我FreeType库随时可供编译器使用.但是,一旦我尝试使用任何方法,事情就会破裂.例如,采用以下脚本:

#include <ft2build.h>
#include FT_FREETYPE_H

main() {

    int error;

    FT_Library library;
    error = FT_Init_FreeType(&library);
    if (error) {}

    FT_Face face;
    error = FT_New_Face(library,"/usr/share/fonts/truetype/arial.ttf",&face);
    if (error == FT_Err_Unknown_File_Format) {
        printf("Font format is unsupported");
    } else if (error) {
        prinft("Font file is missing or corrupted");
    }
}

此脚本在编译时产生以下错误:

#gcc render.c -I/usr/include/freetype2
/tmp/cc95255i.o: In function `main':
render.c:(.text+0x10): undefined reference to `FT_Init_FreeType'
render.c:(.text+0x30): undefined reference to `FT_New_Face'
collect2: ld returned 1 exit status

有任何想法吗?

解决方法

这些都是链接错误.如果它们包含带有演示的Makefile,那么最好使用它.否则,您需要在编译命令行中添加-L和-l选项,以便编译器(实际上是由场景后面的编译器调用的链接器)知道在哪里可以找到FreeType库.

-L选项提供了库的代码所在的路径.例如

-L/usr/local/lib

-l选项提供库的名称.使用-l选项命名的库以缩写形式指定,即从前面的“lib”和后面的“.a”中删除.因此,例如,如果FreeType库存储在文件libfreetype.a中,它将在-l选项中显示为

-lfreetype

例如.:

gcc render.c -I/usr/include/freetype2 -L/usr/local/lib -lfreetype

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读