5

正しくリンクできません。

私はやった:

#define GLEW_STATIC
#include "glew/glew.h"
#pragma comment(lib, "glew/glew32s.lib")

ただし、それでもエラーが発生します。

LNK2019:関数初期化で参照される未解決の外部シンボル__glewGenBuffersARB

4

2 に答える 2

13

多くの手間を省き、ファイルをプロジェクトに入れるだけですglew.c。私は、外部からGlewライブラリにリンクすることを決して気にしません。そこにそれがあると、GLEW_STATICマクロは機能します。これはたった1つのファイルであり、(これが重要な場合は)プラットフォーム間でうまく機能します(複数のOS固有のライブラリを再構築する必要はありません)。

于 2012-06-14T22:11:32.717 に答える
1

プロジェクトのより詳細な回答を提供することで、優れた@TheBuzzSawのアイデアを拡張したいと思いcmakeます。

  1. ここGLEWからソースをダウンロードします。
  2. アーカイブを解凍し、2つのファイル(src/glew.cおよびinclude/GL/glew.h)をプロジェクトのディレクトリにコピーします。
  3. ファイルの先頭が次のようになるように編集glew.cします。
#ifndef GLEW_INCLUDE
#include "glew.h"  /* Point to local glew.h file. */
#else
#include GLEW_INCLUDE
#endif
  1. ファイルに以下を使用してmain.cpp、静的GLEWを正しく含めます。
#define GLEW_STATIC
#include "glew.h"
  1. プロジェクトをビルドするには、静的GLEWライブラリをコンパイルしてリンクする必要があります。コピーされたファイルを使用したサンプルCMakeLists.txtファイル:
cmake_minimum_required(VERSION 3.17)
project(your-project-name)

add_library(STATIC_GLEW glew.c)
add_executable(your-project-name main.cpp)


target_link_libraries(your-project-name STATIC_GLEW)

これで、リンクエラーなしでプロジェクトをビルドできるはずです。

于 2021-03-29T19:29:58.770 に答える