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

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

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

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

2175閲覧

glew がリンク出来ない未定義と表示される原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/01/28 04:40

編集2022/01/28 07:08

提示画像ですが以下の未定義というエラーが表示されます。この原因はなんでしょうか?

調べたこと

glew/lib/release/win32,glew/lib/release/win32/x64の中に入っているglew32.lib,glew32s.libの計四つのlibファイルの設定を切り替えて設定しました。
ソースファイルがその場にあるか確認
その他の利用ライブラリglfw3,opengl32,freetype.等のファイルを確認
ライブラリファイル名をわざと間違て実行すると○○ファイルを開けませんというエラーが出るためファイル名が間違えていません。
Main.cppの一番上の行に#define GLEW_STATICを入れてて実行しましたが同じでした。

環境

windows10
Visual studio

glew: http://glew.sourceforge.net/
イメージ説明
イメージ説明

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

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

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

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

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

y_waiwai

2022/01/28 04:42

ちゃんとそれらのライブラリをリンクしてるんでしょうか
退会済みユーザー

退会済みユーザー

2022/01/28 04:44

環境はVisual studio です。ソースファイルとライブラリファイルを設定すればF5キーで自動でコンパイルリンクされるはずですが何かあるのでしょうか?
y_waiwai

2022/01/28 04:59

それぞれのシンポルがどのライブラリに入ってるのか確認してみては。 ライブラリが不足してるか間違ってるかが考えられます
guest

回答1

0

ベストアンサー

こちらの事象でしょうか?

■ GLEWのスタティックリンク(静的リンク)ライブラリの使用方法
http://atelier-xwe.blogspot.com/2013/01/glew.html

GLEW の glew.h の既定としては DLL での使用を想定している為、スタティックリンクで使う場合、下記のように #define GLEW_STATIC を定義する必要があるようです。

cpp

1#define GLEW_STATIC 2#include <GL/glew.h>

VC++ のプロジェクトの場合、スタティックリンク用のプロジェクトの構成を用意して
「C/C++」-「プリプロセッサ」-「プリプロセッサの定義」にて GLEW_STATIC を追加下さい。

<参考>
■ The OpenGL Extension Wrangler Library - Building Your Project with GLEW
http://glew.sourceforge.net/install.html

投稿2022/01/28 05:31

編集2022/01/28 06:07
cx20

総合スコア4633

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

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

退会済みユーザー

退会済みユーザー

2022/01/28 06:17

Main.cppの一番上の行に追記しましたが同じエラーが出ます。
cx20

2022/01/28 06:38

プロジェクトのプロパティの > 「C/C++」-「プリプロセッサ」-「プリプロセッサの定義」 に GLEW_STATIC を追加して試しても同じでしょうか?
cx20

2022/01/28 06:43

補足ですが、リンクする lib ファイルもプロジェクトの構成毎に指定する必要があります。 ・glew32.lib … DLL 用 ・glew32s.lib … スタティックリンク用
退会済みユーザー

退会済みユーザー

2022/01/28 07:01

もう一度試しましたが同じでした。
退会済みユーザー

退会済みユーザー

2022/01/28 07:13

glew/lib/x64/glew32s.libを使ったら実行できました。
cx20

2022/01/28 07:19

念のための確認ですが・・ > 計四つのlibファイルの設定を切り替えて設定しました 4つのlibファイルの設定というのは ・Win32\glew32.lib … 32bit + GLEW の DLL 版を使用 ・Win32\glew32s.lib … 32bit + GLEW のスタティックリンク版を使用 ・x64\glew32.lib … 64bit + GLEW の DLL 版を使用 ・x64\glew32s.lib … 64bit + GLEW のスタティックリンク版を使用 で、それぞれ異なるプロジェクトの構成を作成した、ということで良いでしょうか? もしそうであれば、今回の事象は、DLL 用のプロジェクト構成でなく、スタティックリンク用のプロジェクト構成で発生している、ということで合っていますか?
cx20

2022/01/28 07:20

あぁ、解決したようですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問