当我编译这个需要 GLUT 的 C++ 程序时,如何解决链接器问题?
-
19-09-2019 - |
题
我正在尝试编译这个使用 GLUT32 库的 C++ 程序。
现在我收到以下错误:
错误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__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”
如果有人想看看我正在从事什么项目,那就是 这里.
为了解决这些错误,我错过了哪些步骤或做错了哪些步骤?
解决方案
未解析的符号来自 GL 和 GLU 库。您还需要为它们添加链接库。
其他提示
在我看来,您正在混合静态和动态链接选项。我正在下载您的项目进行调查,但是您正在执行什么类型的编译?
我没有在项目中看到对 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"