Как решить проблемы с компоновщиком при компиляции программы на C++, требующей GLUT?

StackOverflow https://stackoverflow.com/questions/2217825

Вопрос

Я пытаюсь скомпилировать эту программу на C++, использующую библиотеки GLUT32.

Прямо сейчас я получаю следующие ошибки:

Ошибка 1 ошибка LNK2001:Неразрешенные Внешний символ _gluPerspective@32 Camera.obj soundCube Ошибка 2 LNK2001:Неразрешенные Внешний символ _gluLookAt@72 Camera.obj soundCube Ошибка 3 ошибка LNK2001:Неразрешенные Внешний символ __imp__glMaterialfv@12 GLWindow.obj soundCube Ошибка 4 LNK2001:Неразрешенные Внешний символ __imp__glClear@4 GLWindow.obj soundCube Ошибка 5 ошибка LNK2001:Неразрешенные Внешний символ __imp__glClearColor@16 GLWindow.obj soundCube Ошибка 6 LNK2001:Неразрешенные Внешний символ __imp__glMaterialf@12 GLWindow.obj soundCube Ошибка 7 ошибка LNK2001:Неразрешенные Внешний символ __imp__glEnd@0 GLWindow.obj soundCube Ошибка 8 ошибка LNK2001:Неразрешенные Внешний символ __imp__glRasterPos2f@8 GLWindow.obj soundCube Ошибка 9 LNK2001:Неразрешенные Внешний символ __imp__timeGetTime@0 GLWindow.obj soundCube Ошибка 10 LNK2001:Неразрешенные Внешний символ __imp__glDisable@4 GLWindow.obj soundCube Ошибка 11 LNK2001:Неразрешенные Внешний символ __imp__glBegin@4 GLWindow.obj soundCube Ошибка 12 ошибка LNK2001:Неразрешенные Внешний символ __imp__glColor4f@16 GLWindow.obj soundCube Ошибка 13 LNK2001:Неразрешенные Внешний символ __imp__glPopMatrix@0 GLWindow.obj soundCube Ошибка 14 LNK2001:Неразрешенные Внешний символ __imp__glPushMatrix@0 GLWindow.obj soundCube Ошибка 15 LNK2001:Неразрешенные Внешний символ __imp__glRotatef@16 GLWindow.obj soundCube Ошибка 16 LNK2001:Неразрешенные Внешний символ __imp__glBlendFunc@8

...

Ошибка 56, фатальная ошибка LNK1120:55 неразрешенных внешних внешних

У меня не так много опыта в C++, но я попытался правильно настроить GLUT, чтобы этот проект мог ссылаться на него.

Я скачал библиотеку GLUT32 для Страница Нейта Робина.

Затем я поместил следующие файлы:

  • Glut.h - C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
  • Glut32.lib - C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
  • Glut.dll - C:\Windows\System32

Я также выбрал Проект -> Свойства -> Компоновщик -> Дополнительные зависимости -> Добавлен «glut32.lib».

Если кто-то хочет увидеть, над каким проектом я работаю, это здесь.

Какой шаг я пропустил или делаю неправильно, чтобы устранить эти ошибки?

Это было полезно?

Решение

Неразрешенные символы взяты из библиотек GL и GLU.Вам также необходимо добавить библиотеки ссылок для них.

Другие советы

мне кажется, что вы смешиваете параметры статической и динамической ссылки.Я загружаю ваш проект, чтобы изучить его, но какой тип компиляции вы делаете?

Я не видел ссылки на файл .lib в проекте...

Я добавил ссылку на библиотеку и пути LIB/INCLUDE:

diff --git a/soundCube/soundCube.vcproj b/soundCube/soundCube.vcproj
index 62e04c1..b71eb20 100644
--- a/soundCube/soundCube.vcproj
+++ b/soundCube/soundCube.vcproj
@@ -41,6 +41,7 @@
            <Tool
                Name="VCCLCompilerTool"
                Optimization="0"
+               AdditionalIncludeDirectories="d:\temp\glut"
                PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                MinimalRebuild="true"
                BasicRuntimeChecks="3"
@@ -60,7 +61,9 @@
            />
            <Tool
                Name="VCLinkerTool"
+               AdditionalDependencies="glut32.lib"
                LinkIncremental="2"
+               AdditionalLibraryDirectories="d:\temp\glut\GL"
                GenerateDebugInformation="true"
                SubSystem="1"
                TargetMachine="1"
@@ -114,6 +117,7 @@
                Name="VCCLCompilerTool"
                Optimization="2"
                EnableIntrinsicFunctions="true"
+               AdditionalIncludeDirectories="d:\temp\glut"
                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                RuntimeLibrary="0"
                EnableFunctionLevelLinking="true"
@@ -132,7 +136,9 @@
            />
            <Tool
                Name="VCLinkerTool"
+               AdditionalDependencies="glut32.lib"
                LinkIncremental="1"
+               AdditionalLibraryDirectories="d:\temp\glut\GL"
                GenerateDebugInformation="true"
                SubSystem="1"
                OptimizeReferences="2"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top