Не удается открыть файл glut32 lib
Я пытаюсь скомпилировать OpenGL-программу с помощью Visual Studio 2013, но я получаю следующую ошибку:
Ошибка 1 ошибка LNK1104: невозможно открыть файл ‘freeglutd.lib’…
Для справки, у меня установлен FreeGLUT и настроен VS для поиска правильных каталогов для включенных файлов и файлов библиотек. Действительно, VS распознает, что GLUT включает файлы просто отлично. Я также добавил opengl32.lib и freeglut.lib в дополнительные зависимости.
Почему VS ищет “freeglutd.lib”? Он определенно не указан в дополнительных зависимостях. Я могу решить ошибку компиляции, переименовав “libglut.lib” в “libglutd.lib” и удалив первый из зависимостей, но мне просто любопытно, почему он ведет себя таким образом.
Говоря о дополнительных зависимостях, действительно ли нужно добавить opengl32.lib? Я могу скомпилировать мою (очень базовую) программу без нее, но более одного человека заявили, что это необходимо, возможно, для более старых версий Visual Studio?
Также нужно проверить две вещи:
- Вы работаете в режиме отладки или выпуска? d в конце freeglutd.lib предполагает, что это библиотека, предназначенная для отладочных построек
- Попробуйте создать новый проект с нуля, добавьте в него некоторый базовый исполняемый код, который использует freeGLUT и посмотрит, правильно ли связывается VS. Это также проверит, по какой-либо причине файл проекта предыдущего проекта был поврежден (как предложил @RobertHarvey) или проблема находится где-то еще.
если вы проверили freeglut_std.h(freeglut V3.0):
поэтому, если вы не определяете NDEBUG, компоновщик будет ссылаться на “freeglutd.lib”,
вы можете решить это, указав NDEBUG в “PreprocessorDefinitions”.
Удачи!
Я решил эту проблему, компилируя freeglut и freeglut_static из сгенерированного CMake soluton в режиме Debug – freeglutd был создан в каталоге lib/Debug. Вы можете поместить этот каталог в путь lib, и он будет работать!
Эй, я не знаю, есть ли у вас эта ошибка, но вот решение. В значительной степени “freeglutd.lib” имеет отношение к отладке, следовательно, “d” на конце, поэтому я сделал это:
Свойствa > C/С++ > Препроцессоp > Определения препроцессора и введите NDEBUG. Затем ОК и Применить.
Что это делает в “freeglut_std.h”, есть ifdef для NDEBUG, если он определен, то используйте “freeglut.lib”, иначе он будет использовать “freeglutd.lib”. Поэтому, определив его в определениях препроцессора, вы теперь используете “freeglut.lib”. Надеюсь, это поможет вам!
Короче выдает мне Студия 2010 Вот такую ошибку - Не удается открыть файл glut32.lib
файлы кидал по этим папкам :
dll - C:\Windows\System32
.lib - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\IA64
.h - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
Помогите а то я уже голову сломал
Вот исходник :
Ошибка с подключением вложенных библиотек
Создаю в Qt Creator, но думаю, что проблема не в нём. Создаю статическую библиотеку lib1 в Qt.
-.lib нужно кидать в папку:
. /*Здесь папка, где установлена VS10*/VC/lib/
p.s. лично я .lib вообще не включаю, их glut.h включает автоматом (это я о коде программы)
-.lib нужно кидать в папку:
. /*Здесь папка, где установлена VS10*/VC/lib/
p.s. лично я .lib вообще не включаю, их glut.h включает автоматом (это я о коде программы)
.
Да что ж тут думать-то, если вам все равно что это за файл, и где он находится!
Сделайте как я - киньте .dll файл в папку VC, include и lib
Ну и в системную папку, конечно
.
Да что ж тут думать-то, если вам все равно что это за файл, и где он находится!
Сделайте как я - киньте .dll файл в папку VC, include и lib
Ну и в системную папку, конечно
Кинул во все эти папки и все равно тоже самое. может проект не такой создаю Консольное приложение win32 .
Подключи либы:
winmm.lib
gdi32.lib
Добавлено через 3 минуты
.
Сделайте как я - киньте .dll файл в папку VC, include и lib
Ну и в системную папку, конечно
Должно работать :)
Ахах, рабочий вариант. jokingly: Да еще разложи glut32.dll вокруг exeшника и постучи в барабан:D
Добавлено через 8 минут
У меня кстати твоя программа сразу заработала в devC++
Подключи либы:
winmm.lib
gdi32.lib
Добавлено через 3 минуты
Ахах, рабочий вариант. jokingly: Да еще разложи glut32.dll вокруг exeшника и постучи в барабан:D
в проге подключил , но все равно тоже самое, может dll кривое .
devC++ извини туплю наверное но что это?))))
в проге подключил , но все равно тоже самое, может dll кривое .
devC++ извини туплю наверное но что это?))))
Другие решения
Это случилось со мной в этой ситуации, я очищаю решение и собираю его снова, затем возникает много ошибок, таких как LNK1104.
После попытки перезапустить IIS я успешно строю решение без ошибок LNK1104. Я не знаю почему, но перезапуск IIS занимает гораздо больше времени, чем обычно, поэтому я предполагаю, что что-то используется другим рабочим процессом IIS.
Просто сделайте снимок, чтобы увидеть, происходит ли эта магия на вас.
Шаги по использованию классов из другого проекта (добавление ошибок компоновщика заголовка и решателя)
Чтобы иметь возможность добавить заголовок из другого проекта, сначала перейдите на «Свойства> c ++> Общие> Дополнительные каталоги включения» и добавьте каталог, который содержит заголовок. Теперь вы сможете добавить заголовок класса из другого проекта, но запуск проекта все равно вызовет ошибки компоновщика.
«Свойства> Linker> Дополнительные каталоги библиотеки». Укажите местоположение создаваемого файла lib.
«Свойства> Линкер> Ввод> Дополнительные зависимости»: Добавьте имя файла lib.
Это похоже на то, что библиотека была указана как зависимость, но компоновщик / дополнительные пути поиска не были установлены для включения каталога, в котором расположена библиотека.
Этот вопрос старый и помечен как решенный, но у меня были похожие симптомы проблемы с совершенно другим решением. Так что на случай, если кто-то еще споткнется здесь:
Оказалось, что, поскольку у меня было 2 проекта под одним решением (dll и exe), порядок построения был смешанным (из окна вывода):
В этой статье я расскажу как установить графическую библиотеку glut, и покажу вам самый элементарный пример программы с его использование, пользуясь средой разработки "Microsoft Visual C++ Express 2010"
Glut предназначен для создания/манипуляции окон, вывода графики.Так же glut прекрасно подходит для освоения OpenGL.
1)Начнём с glut32.dll.Его мы должны перекинуть по этому адресу:
C://Windows/System32
2)glut32.lib надо перекинуть по этому адресу:
C://Program files/Microsoft Visual Studio/VC/lib
3)Для glut.h Мы создадим папку по адресу . /VC/include , назовём её GL.И в эту папку перекинем glut.h.
(Таким же образом можно установить библиотеки gl.h и glu.h все файлы можно скачать по отдельности здесь)
4)Открываем Microsoft Visual C++.Создаём проект.(Win32->Консольное приложение(пустой проект))
5)Правой кнопкой жмём на проект ->Cвойства->Открываем вкладку "Компоновщики".В "Дополнительных зависимостях"пишем:
opengl32.lib glut32.lib glu32.lib
Установка завершена!
Перейдём к программе написанной с помощью glut.
Для подключения заголовочного файла нам нужно написать:
void display()
<
glClear(GL_COLOR_BUFFER_BIT); /*Функция очищения экрана*/
glBegin(GL_LINES);//начало рисования линий
glColor3f(1.0, 0.0, 0.0); //цвет красный
//Нарисуем квадрат
glVertex2f(0.4, 0.4);//координаты начальной точки лини
glVertex2f(0.4, 0.8);//координаты конечной точки линии
//
glVertex2f(0.4, 0.8);/*2f - означает что рисуем мы в 2-х мерном пространстве*/
glVertex2f(0.8, 0.8);
//
glVertex2f(0.8, 0.8);
glVertex2f(0.8, 0.4);
//
glVertex2f(0.4, 0.4);
glVertex2f(0.8, 0.4);
glEnd();
glFlush(); /*Отрисовывает всё, что мы описали*/
>
void display()
<
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(0.4, 0.4);
glVertex2f(0.4, 0.8);
//
glVertex2f(0.4, 0.8);
glVertex2f(0.8, 0.8);
//
glVertex2f(0.8, 0.8);
glVertex2f(0.8, 0.4);
//
glVertex2f(0.4, 0.4);
glVertex2f(0.8, 0.4);
glEnd();
glFlush();
int main(int argc, char **argv)
<
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(240, 240);
glutInitWindowPosition(100, 740);
glutCreateWindow("First window!");
glClearColor(1.0, 1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glutDisplayFunc(display);
glutMainLoop();
>
Решение
а у тебя glut32 есть? или glu32 одно и тоже?))
скачал новый dll все равно (((((
Все заработало))) Оказывается надо glut32dll кидать не в system32 а в system )) в system32 она до этого была) а я уже glut32dll накидал куда можно)) Всем спасибо за помощь.
Возьми сотри у себя все include и pragma и напиши
Разве не работает.
Ой не тот файл.
Сейчас посмотрела в системной папке там вообще нету глут32.длл, но у меня работат программа получается без него. О_о
Ой не тот файл.
Сейчас посмотрела в системной папке там вообще нету глут32.длл, но у меня работат программа получается без него. О_о
Наверное тоже колдовали :D
Возьми сотри у себя все include и pragma и напиши
Разве не работает.
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__gluNewQuadric@0 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnable@4 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLightfv@12 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMaterialfv@12 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glShadeModel@4 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearColor@16 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnd@0 в функции "void __cdecl DrawGraphic(void)" (?DrawGraphic@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glVertex3d@24 в функции "void __cdecl DrawGraphic(void)" (?DrawGraphic@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glColor3d@24 в функции "void __cdecl DrawGraphic(void)" (?DrawGraphic@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glBegin@4 в функции "void __cdecl DrawGraphic(void)" (?DrawGraphic@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glPopMatrix@0 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutSolidOctahedron@0 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutWireOctahedron@0 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glScalef@12 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__gluCylinder@36 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glTranslatef@12 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glRotatef@16 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glPushMatrix@0 в функции "void __cdecl DrawFigure(void)" (?DrawFigure@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutPostRedisplay@0 в функции "void __cdecl KeyboardFunc(unsigned char,int,int)" (?KeyboardFunc@@YAXEHH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutSwapBuffers@0 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__gluLookAt@72 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__gluQuadricDrawStyle@8 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glDisable@4 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "void __cdecl DrawFunc(void)" (?DrawFunc@@YAXXZ)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glOrtho@48 в функции "void __cdecl ReshapeFunc(int,int)" (?ReshapeFunc@@YAXHH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __cdecl ReshapeFunc(int,int)" (?ReshapeFunc@@YAXHH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __cdecl ReshapeFunc(int,int)" (?ReshapeFunc@@YAXHH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutTimerFunc@12 в функции "void __cdecl TimerFunc(int)" (?TimerFunc@@YAXH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutSetWindowTitle@4 в функции "void __cdecl TimerFunc(int)" (?TimerFunc@@YAXH@Z)
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutMainLoop@0 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutIdleFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutMotionFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutMouseFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutKeyboardFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutReshapeFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutDisplayFunc@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutCreateWindow@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitDisplayMode@4 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitWindowPosition@8 в функции _main
1>олег 2.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitWindowSize@8 в функции _main
Каждый раз, когда я пытаюсь запустить свой код, я получаю эту ошибку. Я перепробовал все, устанавливая SDK, но все равно получаю ту же ошибку.
Я использую Windows 7 и Visual Studio 2012.
Решение
Честно говоря, нет реальной пользы от использования DLL-версии glew (если не считать уменьшенного размера исполняемого файла, но это вряд ли имеет значение на современных ПК с Windows).
Это не значит, что вы можете просто вставить новую версию DLL в свое приложение и использовать расширения, которые вы никогда раньше не использовали. Точно так же исправления ошибок настолько редки / не нужны в библиотеке, которая в основном просто анализирует спецификацию расширения. файлы, которые используют DLL как средство исправления ошибок загрузки расширений в поставляемом программном обеспечении, также не практичны. Статическая ссылка на glew (это означает glew32s.lib ) имеет гораздо больше смысла в долгосрочной перспективе.
Библиотека статических ссылок также более переносима в Windows, она будет работать с MSVC и MinGW (тогда как библиотека DLL работает только с MSVC). Ссылка против glew32s и поместите это в любой каталог, который вы решили использовать для дополнительных библиотечных зависимостей.
Вот пример конфигурации решения для проекта, который я написал, который использует glew. Я установил соглашение для этого конкретного программного обеспечения, где зависимости времени компиляции хранятся в platform/ , Таким образом, у меня есть glew32s.lib (32-разрядный) и glew64s.lib (64-разрядный) в ./Epsilon/platform/OpenGL/glew<32|64>s.lib
Решение
Если у кого-то есть такая проблема в Visual Studio 2017, это проблема обновления Windows 10 Creators.
Обходной путь — выбрать «Windows 10 SDK (10.0.15063.0) для рабочего стола C ++ x86 и x64» в рабочей нагрузке «Разработка рабочего стола с C ++» в установщике Visual Studio.
Другие решения
Для тех, у кого такая же проблема с Visual Studio 2015 в Windows 10, это может быть связано с тем, что установка была прервана. Если это так, просто запустите программу установки, чтобы сделать «Ремонт».
Также может быть хорошей идеей установить RC версии Visual Studia 2015 Update 1.
Это сработало для меня …
В Visual Studio 2017 (Community Edition) я решил эту проблему, переключив версию Windows SDK в свойствах проекта с 10.0.10586.0 на 10.0.16299.0 (это версия, которую я установил на своем компьютере).
- В Visual Studio перейдите в свойства проекта:
Я нахожусь на Windows 8.1 Visual Studio 2017 Professional, и он начал работать после переключения свойств проекта версии Windows SDK на 8.1, сборки, затем переключите его обратно на 10.0.16299.0.
Я пытался скомпилировать пример проекта CUDA.
Это сработало, не спрашивайте меня, почему. Возможно, это как-то связано с тем, что у меня Visual Studio Community 2017, а затем я удалил его, чтобы установить профессионала.
Из того, что я понимаю, вы не определили путь вашей библиотеки.
Щелкните правой кнопкой мыши на Project -> Properties
В разделе «Свойства конфигурации» на вкладке «Компоновщик» выберите «Общие» в разделе «Дополнительные каталоги библиотек». Выберите путь к gdi32.lib:
Затем перейдите к вход вкладка (ниже на генеральный вкладка).
Дважды щелкните или выберите изменить, чтобы добавить gdi32.lib:
Наконец добавьте ваш «gdi32.lib» и нажмите Хорошо .
Кстати, в Visual Studio 2013 Ultimate Edition по умолчанию он имеет gdi32.lib.
Я надеюсь, что это решит вашу проблему.
Если вы переместили код с другого компьютера, возможно, он использует неправильный SDK на вашей платформе. Проверьте свойства проекта → генеральный → Версия Windows SDK и установите его на что-то, показанное в списке.
Чтобы решить эту проблему, вам нужно найти папку, содержащую gdi32.lib файл.
Для моей системы я нашел это в C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86 ,
Просто добавьте его в список свойств вашего проекта. Как описано в других постах, меню проект → свойства затем каталоги VC ++. Добавьте путь вверху.
У меня проблемы с компиляцией базовой программы openGL на VS 2012. Я получаю ошибку сборки после компиляции, давая мне:
Я следовал инструкциям, данным мне в документации для GLEW.
Я также добавил glew32.dll в папку Debug в папке проекта вместе с исполняемым файлом. Пока я продолжаю получать эту ошибку.
Если вам нужно более подробное разъяснение шагов, которые я сделал, пожалуйста, не стесняйтесь спрашивать
Читайте также: