[cairo] cairo-ft.h
suzuki toshiya
mpsuzuki at hiroshima-u.ac.jp
Sat Nov 12 12:05:24 UTC 2022
What `pkg-config --cflags freetype2 cairo` would return in your environment?
In my case, it returns like below.
$ pkg-config --cflags freetype2 cairo
-I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16
The code you pasted,
> #include <cairo/cairo.h>
> #include <cairo/cairo-ft.h>
> //#include <cairo.h>
> //#include <cairo-ft.h>
>
> #include <freetype2/ft2build.h>
> //#include <ft2build.h>
looks like the situation that CFLAGS was not set properly, and cannot find cairo.h or ft2build.h, and you might have tried to fix by a workaround in C source (and failed). Please check your `pkg-config --cflags freetype2 cairo` you wrote in Makefile
Regards,
mpsuzuki
On 2022/11/12 18:35, Rafał Jopek wrote:
> Hi,
>
> Maybe someone is trying to make a compilation of this simple codes
> For me, it signals an error even though I have all the dependencies installed, we are talking about MSYS2
>
> ```
> C:/msys64/mingw64/include/cairo/cairo-ft.h:46:10: fatal error: ft2build.h: No such file or directory
> 46 | #include <ft2build.h>
> | ^~~~~~~~~~~~
> ```
>
> free-type.c
>
> ```
>
> // free-type.c
> #include <stdio.h>
> #include <stdlib.h>
> #include <cairo/cairo.h>
> #include <cairo/cairo-ft.h>
> //#include <cairo.h>
> //#include <cairo-ft.h>
>
> #include <freetype2/ft2build.h>
> //#include <ft2build.h>
>
> #include FT_SFNT_NAMES_H
> #include FT_FREETYPE_H
> #include FT_GLYPH_H
> #include FT_OUTLINE_H
> #include FT_BBOX_H
> #include FT_TYPE1_TABLES_H
>
> int main()
> {
> FT_Library value;
> FT_Error status;
> FT_Face face;
>
> cairo_t *c;
> cairo_surface_t *cs;
> cairo_font_face_t * ct;
> int size = 200;
>
> cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, size, size);
> c = cairo_create (cs);
>
> const char * filename = "/usr/local/share/fonts/Droid/DroidSansFallbackFull.ttf";
>
> status = FT_Init_FreeType (& value);
> if (status != 0) {
> fprintf (stderr, "Error %d opening library.\n", status);
> exit (EXIT_FAILURE);
> }
> status = FT_New_Face (value, filename, 0, & face);
> if (status != 0) {
> fprintf (stderr, "Error %d opening %s.\n", status, filename);
> exit (EXIT_FAILURE);
> }
> ct = cairo_ft_font_face_create_for_ft_face (face, 0);
> cairo_set_font_face (c, ct);
> cairo_set_font_size (c, size/3);
> cairo_set_source_rgb (c, 0, 0, 0);
> cairo_move_to (c, size/6, size/3);
> cairo_show_text (c, "あい");
> cairo_set_source_rgb (c, 0.5, 0.5, 0);
> cairo_move_to (c, size/6, 5*size/6);
> cairo_show_text (c, "金柑");
> cairo_surface_write_to_png (cs, "free-type.png");
> return 0;
> }
>
>
> ```
>
> Makefile
>
> ```
>
> C=free-type.c
> CFLAGS = -Wall -g `pkg-config --cflags freetype2 cairo`
> LDFLAGS = `pkg-config --libs freetype2 cairo`
>
> all: free-type.png
>
> free-type.png: free-type
> ./free-type
>
> free-type: $(C)
> $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(C)
>
> clean:
> -rm -f free-type free-type.png
>
>
> ```
>
>
> Kind regards,
> -- Rafał
>
More information about the cairo
mailing list