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

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

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

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

terminal

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

OpenGL

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

2637閲覧

gccでOpenGLを使いたい

emilio

総合スコア15

C

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

terminal

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

OpenGL

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/10/09 14:52

編集2020/10/10 02:41

前提・実現したいこと

macのterminalで
gccでOpenGLを使ったプログラムをコンパイルして実行したい。
コンパイルのエラーに以下のエラーメッセージが発生しました。

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

test2.cpp:26:9: warning: 'glClear' is deprecated: first deprecated in macOS 10.14 - OpenGL API deprecated. (Define GL_SILENCE_DEPRECATION to silence these warnings) [-Wdeprecated-declarations] glClear(GL_COLOR_BUFFER_BIT); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:2394:13: note: 'glClear' has been explicitly marked deprecated here extern void glClear (GLbitfield mask) OPENGL_DEPRECATED(10.0, 10.14); ^ 1 warning generated. Undefined symbols for architecture x86_64: "_glfwCreateWindow", referenced from: _main in test2-2135b6.o "_glfwInit", referenced from: _main in test2-2135b6.o "_glfwMakeContextCurrent", referenced from: _main in test2-2135b6.o "_glfwPollEvents", referenced from: _main in test2-2135b6.o "_glfwSwapBuffers", referenced from: _main in test2-2135b6.o "_glfwTerminate", referenced from: _main in test2-2135b6.o "_glfwWindowShouldClose", referenced from: _main in test2-2135b6.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

該当のソースコード

C

1#include <GLFW/glfw3.h> 2 3int main(void) 4{ 5 GLFWwindow* window; 6 7 /* Initialize the library */ 8 if (!glfwInit()) 9 return -1; 10 11 /* Create a windowed mode window and its OpenGL context */ 12 window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL); 13 if (!window) 14 { 15 glfwTerminate(); 16 return -1; 17 } 18 19 /* Make the window's context current */ 20 glfwMakeContextCurrent(window); 21 22 /* Loop until the user closes the window */ 23 while (!glfwWindowShouldClose(window)) 24 { 25 /* Render here */ 26 glClear(GL_COLOR_BUFFER_BIT); 27 28 /* Swap front and back buffers */ 29 glfwSwapBuffers(window); 30 31 /* Poll for and process events */ 32 glfwPollEvents(); 33 } 34 35 glfwTerminate(); 36 return 0; 37} 38

試したこと

ネットを使って調べてみたがxcodeを用いたときの対処法しかなかった。

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

macOS 10.15.7
gccはインストールされています。
ここにより詳細な情報を記載してください。

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

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

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

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

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

thkana

2020/10/09 22:58

エラーメッセージはそれが全てなのですか? 詳細な情報のあとの最後の一行、「以上、エラーが一個ありました」のところだけを抜き出したというわけではないですね? いずれにしても、そこに書いてある方法で情報を得れば次に進めるかも知れませんね。逆に情報量に溺れてしまうこともないとは言えませんが、それはやってみないとわかりません。
emilio

2020/10/10 02:43

おっしゃる通りでした。この分の上に原因とみられる文がありました。修正させていただきました。失礼しました。
thkana

2020/10/10 03:36

コンパイル時のコマンドラインはどうやりましたか? #ライブラリをリンクしてないとか
emilio

2020/10/10 03:46

以下のコマンドでコンパイルしました。 gcc -framework OpenGL -framework GLUT test2.cpp
guest

回答1

0

ベストアンサー

Macの環境は作っていないので確認出来ませんが、
こことかここを見ると、コンパイル時のコマンドラインに-lglfwを付け加えたほうが良さそうに思えます。

投稿2020/10/10 08:25

thkana

総合スコア7703

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

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

emilio

2020/10/10 14:03

gcc test2.cpp -framework OpenGL -lglfw のコマンドで実行できました!大変お世話になりました!ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問