سؤال
في برنامج OpenGL البسيط الخاص بي، أحصل على الخطأ التالي حول إعادة تعريف الخروج:
1>c:\program files\microsoft visual studio 8\vc\include\stdlib.h(406) : error C2381: 'exit' : redefinition; __declspec(noreturn) differs
1> c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\glut.h(146) : see declaration of 'exit'
أنا أستخدم نيت روبينز وفرة لWin32 واحصل على هذا الخطأ مع Visual Studio 2005 أو Visual C++ 2005 (Express Edition).ما هو سبب هذا الخطأ وكيف أصلحه؟
المحلول
سبب:
ال stdlib.h الذي يأتي مع الإصدارات الأخيرة من Visual Studio له تعريف مختلف (ومتضارب) لـ مخرج() وظيفة.وهو يتعارض مع التعريف في تخمة. ح.
حل:
تجاوز التعريف الموجود في glut.h مع ذلك الموجود في stdlib.h.ضع السطر stdlib.h فوق سطر glut.h في التعليمات البرمجية الخاصة بك.
#include <stdlib.h>
#include <GL/glut.h>
نصائح أخرى
أو هذا...لإصلاح الخطأ، انقر بزر الماوس الأيمن على اسم المشروع في علامة التبويب Solution Explorer وحدد خصائص -> C/C++ -> المعالج المسبق -> تعريفات المعالج المسبق وألحق GLUT_BUILDING_LIB بالتعريفات الموجودة، مفصولة بفواصل منقوطة.