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

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

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

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenGL

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

C++

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

Q&A

解決済

2回答

1645閲覧

.libファイルと.dllファイルが参照できない

TAKEBE

総合スコア3

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenGL

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

C++

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

0グッド

0クリップ

投稿2023/01/20 13:00

概要

VisualStudio2022上でGLUTを用いてOpenGLを動かそうとしたところ、GLUTの.dllファイルと.libファイルが参照できず失敗してしまいました。

詳細

こちらの動画([https://www.youtube.com/watch?v=wtC03LR3VFo])を参考にGLUTの導入を行いました。

まず、空のプロジェクトとその中にソースファイルを作成し、ヘッダファイルインクルードしてから描画用のウィンドウを出力するプログラムを書きました。最後にローカルwindowsデバッガーで実行したところ、エラーコードLNK2019を吐いてビルドに失敗してしまいました。

LNK2019は「未解決の外部シンボルの参照」の際に出るエラーコードであり、恐らくGLUTのヘッダファイルglut.hが参照するライブラリ"glut32.bin"と"glut32.dll"が正しく参照できていないことが原因であると考えられます。

実現したいこと

ライブラリを参照できるようにし、OpenGLを動かしたい。

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

LNK2019 未解決の外部シンボル __imp___glutInitWithExit が関数 glutInit_ATEXIT_HACK で参照されました

↑これと同様のエラーが複数出ている感じです。

該当のソースコード

#include "glut.h"

void display(void) {

}
int main(int argc, char* argv[]) {
glutInit(
&argc,
argv
);
glutInitWindowPosition(640, 0);
glutInitWindowSize(640, 640);
glutCreateWindow("title");
glutDisplayFunc(display);
glutMainLoop();
};

試したこと

https://corgi-lab.com/windows/vs-external-library/
こちらのサイトに書いてある方法を試しましたが、それでもうまくいきませんでした。具体的には、以下のような3ステップを行いました。

プロジェクトの「プロパティ」→「リンカー」→「全般」にある「追加のライブラリディレクトリ」から、.libファイルが置いてある場所を指定。

プロジェクトの「プロパティ」→「全般」にある「出力ディレクトリ」から、.dllファイルの置いてある場所を指定。

プロジェクトの「プロパティ」→「C/C++」→「全般」にある「追加のインクルードディレクトリ」から、.hファイルが置いてある場所を指定。(おそらく.hファイルのインクルードには成功している?)

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

使用した環境:VisualStudio2022

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

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

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

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

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

guest

回答2

0

ベストアンサー

LNK2019 未解決の外部シンボル __imp___glutInitWithExit が関数 glutInit_ATEXIT_HACK で参照されました

アクティブなプロジェクトの構成を「x64」→「x86」に変更してビルドを試してみてください。
恐らく glut32.lib は 32bit 版のインポートライブラリである為、64bit のプログラムからリンクすることは出来ません。

イメージ説明

投稿2023/01/20 13:56

編集2023/01/20 14:11
cx20

総合スコア4633

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

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

cx20

2023/01/20 14:16

ちなみに GLUT は 2001年以降メンテナンスされていない為、freeglut もしくは他の OpenGL ライブラリを使うことが推奨されているようです。
guest

0

できました!本当にありがとうございます!!!

投稿2023/01/20 14:12

TAKEBE

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問