البصرية ج ++:# تضمين ملفات من مشاريع أخرى في نفس الحل

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

سؤال

أنا أعمل على لعبة باستخدام Visual C++.لدي بعض المكونات في مشاريع منفصلة، ​​وقمت بتعيين تبعيات المشروع.كيف يمكنني #تضمين ملف رأس من مشروع مختلف؟ليس لدي أي فكرة عن كيفية استخدام الفئات من مشروع واحد في مشروع آخر.

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

المحلول

إعدادات المترجم

في المشروع الذي تريد #تضمين ملف الرأس منه آخر المشروع، ستحتاج إلى إضافة مسار ملف الرأس إلى ملف تضمين الدلائل الإضافية قسم في تكوين المشروع.

للوصول إلى تكوين المشروع:

  1. انقر بزر الماوس الأيمن على المشروع، ثم حدد خصائص.
  2. حدد خصائص التكوين->C/C++->عام.
  3. قم بتعيين المسار ضمن دلائل التضمين الإضافية.

كيفية تضمين

ل تضمين ملف الرأس, ، ما عليك سوى كتابة ما يلي في الكود الخاص بك:

#include "filename.h"

لاحظ أنك لا تحتاج إلى تحديد المسار هنا، لأنك قمت بتضمين الدليل في أدلة التضمين الإضافية بالفعل، لذلك سيعرف Visual Studio مكان البحث عنه.

إذا كنت لا ترغب في إضافة كل موقع ملف رأس في إعدادات المشروع، فيمكنك فقط تضمين دليل حتى نقطة ما، ثم #include نسبة إلى تلك النقطة:

// In project settings
Additional Include Directories    ..\..\libroot

// In code
#include "lib1/lib1.h"    // path is relative to libroot
#include "lib2/lib2.h"    // path is relative to libroot

الإعداد للرابط

في حالة استخدام المكتبات الثابتة (أي.lib)، فستحتاج أيضًا إلى إضافة المكتبة إلى مدخل الرابط، بحيث يمكن ربط الرموز في وقت الربط (وإلا ستحصل على رمز لم يتم حله):

  1. انقر بزر الماوس الأيمن على المشروع، ثم حدد خصائص.
  2. حدد خصائص التكوين->رابط->الإدخال
  3. أدخل المكتبة ضمن تبعيات إضافية.

نصائح أخرى

#include لا علاقة له بالمشاريع - فهو يخبر المعالج المسبق "ضع محتويات ملف الرأس هنا".إذا أعطيته مسارًا يشير إلى الموقع الصحيح (يمكن أن يكون مسارًا نسبيًا، مثل ../your_file.h) فسيتم تضمينه بشكل صحيح.

ومع ذلك، سيتعين عليك التعرف على المكتبات (المكتبات الثابتة/الديناميكية) حتى تتمكن من ربط مثل هذه المشاريع بشكل صحيح - ولكن هذا سؤال آخر.

تحتاج إلى تعيين المسار إلى الرؤوس في خصائص المشروع حتى يبحث المترجم هناك عند محاولة العثور على ملف (ملفات) الرأس.لا أستطيع أن أتذكر الموقع بالضبط، ولكن انظر إلى خصائص المشروع ويجب أن تراه.

حاول تجنب مراجع المسار الكاملة في التوجيه #include، سواء كانت مطلقة أو نسبية.بدلاً من ذلك، أضف موقع مجلد التضمين الخاص بالمشروع الآخر في إعدادات المشروع.استخدم المجلدات الفرعية فقط في مراجع المسار عند الضرورة.بهذه الطريقة، يكون من الأسهل تحريك الأشياء دون الحاجة إلى تحديث التعليمات البرمجية الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top