Я пытаюсь скомпилировать небольшой 2D-движок, над которым я работаю. Пока что все прошло хорошо, но с тех пор, как я включил GLEW (поскольку я хотел начать работать с некоторыми фрагментными шейдерами), тестовая программа отказывается от сборки. Для пояснения я создаю движок как статическую библиотеку (Mage2D.lib), а затем создаю тестовую программу, которая использует библиотеку.
Это ошибка, которую я получаю:
1>Link:
1> libpng15.lib(pngget.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol __imp__glewIsSupported@4
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol __imp__glewInit@0
1>C:\Users\Jesse\Documents\Visual Studio 2010\Projects\Rose\Debug\MageTest.exe : fatal error LNK1120: 2 unresolved externals
1>
1>Build FAILED.
Теперь обычно я понимаю, что это означает, что я не включаю нужную библиотеку в свою тестовую программу (glew32.lib). Но это невозможно, так как я встраиваю glew.c в Mage2D.lib. GLEW буквально является частью исходного кода Mage2D, так как казалось, что это удобно делать с программой из четырех файлов и в любом случае составной частью движка.
Я следовал инструкциям GLEW на их веб-сайте к письму о том, как собрать GLEW и включить его в свой проект, но я продолжаю получать эту ошибку.
Что, черт возьми, происходит?
Я проверил glew.h и уверен, что вам нужно добавить GLEW_STATIC определите непосредственно перед включением glew.h:
#define GLEW_STATIC
#include "GL/glew.h"
Других решений пока нет …