كيف يمكنني حل مشكلات الرابط عند ترجمة برنامج C ++ هذا يتطلب خطأ؟

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

سؤال

أحاول ترجمة برنامج C ++ هذا الذي يستخدم مكتبات Glut32.

الآن أحصل على الأخطاء التالية:

خطأ 1 خطأ LNK2001: رمز خارجي لم يتم حلها _gluperspective @ 32 camera.obj soundcube خطأ 2 خطأ LNK2001: aglulookout @ 72 camera.obj soundcube خطأ 3 خطأ LNK2001: رمز خارجي لم يتم حلها __imp__glmmaterialfv @ 12 glwindow.obj soundcube خطأ 4 خطأ LNK2001: رمز خارجي لم يتم حلها __imp__LClear __ __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__LEND @ 0 glwindow.obj soundcube خطأ 8 خطأ LNK2001: رمز خارجي لم يتم حلها __imp__GlRasterPos2F @ 8 glwindow.obj soundcube الخطأ 9 خطأ lnk2001: رمز خارجي لم يتم حلها __imp__TimeTime @ 0 alwindow.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__glblendfung @ 8

...

خطأ 56 خطأ فادح LNK1120: 55 لم يتم حلها externals c: المستخدمين simucal documents downloads soundcubesrc soundcube

أنا لست ذلك من ذوي الخبرة في C ++ لكنني حاولت إعداد خطأ بشكل صحيح حتى يتمكن هذا المشروع مقابله.

قمت بتنزيل مكتبة glut32 صفحة نيت روبن.

ثم وضعت الملفات التالية في:

  • fluth.h - c: program files Microsoft sdks windows v6.0a تشمل gl
  • gluth32.lib - c: program files microsoft sdks windows v6.0a lib
  • full.dll - c: windows system32

لقد حددت أيضا المشروع -> خصائص -> رابط -> تبعيات إضافية -> أضيفت "glut32.lib"

إذا أراد أي شخص أن يرى المشروع الذي أعمل فيه، فهذا هو هنا.

ما الخطوة التي أفتقدها أو أخطئها لحل هذه الأخطاء؟

هل كانت مفيدة؟

المحلول

الرموز التي لم يتم حلها هي من مكتبات GL و GLU. تحتاج إلى إضافة مكتبات الارتباط لهم أيضا.

نصائح أخرى

يبدو لي وكأنك خلط خيارات الارتباط الثابت والديناميكي. أقوم بتنزيل مشروعك للتحقيق، لكن ما نوع التجميع الذي تقوم به؟

لم أر مرجعا إلى ملف Full .lib في المشروع ...

أضفت مرجع المكتبة و LIB / AIMESS المسارات:

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