質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Q&A

0回答

1029閲覧

mac FTGLのincludeがうまくいかない

emilio

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

0グッド

0クリップ

投稿2020/10/12 15:09

前提・実現したいこと

macのterminalでOpenGL(GLFW)を用いてプログラミングをしているのですが、
ftglのincludeがうまくいきません。

発生している問題・エラーメッセージ

In file included from test5.cpp:7: /usr/local/include/FTGL/ftgl.h:32:10: error: 'ft2build.h' file not found with <angled> include; use "quotes" instead #include <ft2build.h> ^~~~~~~~~~~~ "ft2build.h" In file included from test5.cpp:7: In file included from /usr/local/include/FTGL/ftgl.h:32: /usr/local/include/FTGL/ft2build.h:37:10: fatal error: 'freetype/config/ftheader.h' file not found #include <freetype/config/ftheader.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated.

該当のソースコード

C

1#include <stdio.h> 2#include <math.h> 3#include <unistd.h> 4#include <GL/glew.h> 5#include <GLFW/glfw3.h> 6#include <cstdlib> 7#include <FTGL/ftgl.h> 8 9#define CrossingNumber 100 10#define MaxName 50 11#define ORIGIN_X -3.0 12#define ORIGIN_Y 0.0 13#define REAL_SIZE_X 8.0 14#define REAL_SIZE_Y 8.0 15 16typedef strcut{ 17 double x,y; 18} position; 19 20typedef strcut{ 21 int id; 22 position pos; 23 double wait; 24 char jname[MaxName]; 25 char ename[MaxName]; 26 int points; 27 int next[5]; 28} Crossing; 29 30Crossing cross[CrossingNumber]; 31 32 33/* 円を描画する */ 34void circle(double x, double y, double r) 35{ 36 int const N = 24; /* 円周を 24分割して線分で描画することにする */ 37 int i; 38 39 glBegin(GL_LINE_LOOP); 40 for (i = 0; i < N; i++) 41 glVertex2d(x + cos(2 * M_PI * i / N) * r, y + sin(2 * M_PI * i / N) * r); 42 glEnd(); 43} 44 45#ifndef FONT_FILENAME 46#define FONT_FILENAME "/System/Library/Fonts/ヒラギノ角ゴシック W0.ttc" 47#endif 48FTgLFont *font; 49 50void puttextxy(double x,double y,char const *text){ 51 double const scale=0.01; 52 glPushMatrix(); 53 glTranslated(x,y,0.0); 54 glScaled(scale,scale,scale); 55 ftglRenderFont(font,text,FTGL_RENDER_ALL); 56 glPopMatrix(); 57} 58 59int map_read(char *filename){ 60 FILE *fp; 61 int i,j; 62 int crossing_number; 63 64 fp=fopen(filename,"r"); 65 if(fp==NULL){ 66 printf("file %s is not created\n", filename); 67 return 1; 68 } 69 fscanf(fp,"%d",&crossing_number); 70 71 for (i=0;i<crossing_number;i++){ 72 fscanf(fp,"%d,%1f,%1f,%[^,],%[^,],%d",&(cross[i].id),&(cross[i].pos.x),&(cross[i].wait),cross[i].jname,cross[i].ename,&(cross[i].points)); 73 for(j=0;j<cross[i].points;j++){ 74 fscanf(fp,",%d",&(cross[i].next[j])); 75 } 76 } 77 fclose(fp); 78 return crossing_number; 79} 80 81void map_show(int crossing_number){ 82 int i,j; 83 for (i=0;i<crossing_number;i++){ 84 double x0 = cross[i].pos.x; 85 double y0 = cross[i].pos.y; 86 glColor3d(1.0,0.5,0.5); 87 circle(x0,y0,0.1); 88 glColor3d(1.0,1,0); 89 outtextxy(x0,y0,cross[i].jname); 90 glColor3d(1,1,1,); 91 glBegin(GL_LINES; 92 for(j=0;j<cross[i].points;j++){ 93 double x1=cross[cross[i].next[j]].pos.x; 94 double y1=cross[cross[i].next[j]].pos.y; 95 glVertex2d(x0,y0); 96 glVertex2d(x1,y1); 97 } 98 glEnd(); 99 } 100} 101int main(void) 102{ 103 int crossing_number; 104 105 GLFWwindow* window; 106 107 /* グラフィック環境を初期化して、ウィンドウを開く */ 108 109 if(!glfwInit()){ 110 printf("can't initialize GLFW\n"); 111 return 1; 112 } 113 //プログラム終了時の処理を登録する 114 atexit(glfwTerminate); 115 116 window=glfwCreateWindow(640, 480, "Hello World", NULL, NULL); 117 if(window==NULL){ 118 printf("can't initialize GLFW\n"); 119 return 1; 120 } 121 //作成したウィンドウをOpenGLの処理対象にする 122 glfwMakeContextCurrent(window); 123 glewExperimental =GL_TRUE; 124 if(glewInit()!=GLEW_OK){ 125 printf("can't initialize GLEW\n"); 126 return 1; 127 } 128 glMatrixMode(GL_PROJECTION); 129 glLoadIdentity(); 130 glortho(ORIGIN_X+REAL_SIZE_X*-0.5,ORIGIN_X+REAL_SIZE_X*0.5,ORIGIN_Y+REAL_SIZE_Y*-0.5,ORIGIN_Y+REAL_SIZE_Y*0.5,-1,1); 131 glMatrixMode(GL_MODELVIEW); 132 glLoadIdentity(); 133 font = ftglCreateExtrudeFont(FONT_FILENAME); 134 if (font==NULL){ 135 perror(FONT_FILENAME); 136 fprintf(stderr,"could not load font\n"); 137 exit(1); 138 } 139 ftglSetFontFaceSize(fot,24,24); 140 ftglSetFontFaceSize(font,0,01); 141 ftglSetFontFaceSize(font,ft_enconding_unicode); 142 143 crossing_number = map_read("map2.dat"); 144 if (crossing_number < 0) { 145 fprintf(stderr, "couldn't read map file\n"); 146 exit(1); 147 } 148 149 for (;;) { 150 int width, height; 151 152 153 154 glfwGetWindowSize(&width, &height); /* 現在のウィンドウサイズを取得する */ 155 glViewport(0, 0, width, height); /* ウィンドウ全面をビューポートにする */ 156 157 glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 158 glClear(GL_COLOR_BUFFER_BIT); /* バックバッファを黒で塗り潰す */ 159 160 map_show(crossing_number); /* 道路網の表示 */ 161 glfwSwapBuffers(); /* フロントバッファとバックバッファを入れ替える */ 162 } 163 164 glfwTerminate(); 165 166 return 0; 167} 168

試したこと

gcc test5.cpp -framework OpenGL -lglew -lftgl -lglfw
コンパイルは上記コマンドで行いました。
gcc test5.cpp -I/usr/include/freetype2 -framework OpenGL -lglew -lftgl -lglfw
このコマンドでもおこなってみましたがエラー内容は変わりませんでした。
調べてみるとパスが通ってないのではないかと思われるのですが通し方がわかりません。
わかる方がいましたら教えてください。よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

mac 10.15.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問