Как я могу решить проблемы компоновщика, когда я компилирую эту программу C ++, которая требует GLUT? - PullRequest
0 голосов
/ 07 февраля 2010

Я пытаюсь скомпилировать эту программу на 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: \ Users \ Simucal \ Documents \ Downloads \ SoundCubeSrc soundCube

Я не настолько опытен в 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"

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

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

Ответы [ 2 ]

4 голосов
/ 07 февраля 2010

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

1 голос
/ 07 февраля 2010

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

Я не увидел ссылку на файл glut .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"
...