إضافة توجيه مسبق ديناميكيًا من إنشاء سطر الأوامر VS2008
-
30-09-2019 - |
سؤال
أنا أستخدم VS2008 ، وتطوير مشاريع C/C ++. أنا أستخدم ملف .bat لإنشاء مشاريع بلدي من سطر الأوامر (موجه أوامر VC2K8). أحتاج إلى طريقة لتضمين توجيه preprossor ديناميكيًا في وقت البناء.
أنا أستخدم Devenv للبناء من سطر الأوامر.
>devenv my\project\path\myproject.sln /build release > logs\build.log
في الواقع أريد تعيين تعريف ماكرو بناءً على معلمة سطر الأوامر إلى ملف الدُفعات. يمكنني الاحتفاظ بملفين مختلفين .vcproj ، لكن هذا يعطي مشكلة في الحفاظ على ملفات المشروع/SLN المتعددة. ملف الدُفعات الخاص بي سيؤدي إلى شيء مثل هذا ...
if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"
أي مساعدة سيكون موضع تقدير حقا.
شكرًا.
المحلول
خيار واحد هو تعيين ال CL
متغيرات البيئة, ، باستخدام شيء مثل:
set CL=/DMYPROC_ENABLE_MYMODULE
برنامج التحويل البرمجي C ++ (cl.exe
) ستضيف محتويات CL
متغير البيئة إلى سطر الأوامر عند تشغيله.
أعلم أنه يمكنك تحديد وحدات الماكرو إذا كنت تبني باستخدام msbuild
, ، لكنني لست متأكدًا من أنك تستطيع أن تفعل الشيء نفسه عند الاستخدام devenv
مباشرة.
نصائح أخرى
يمكنك عمل تكوينات مختلفة لحلك وتحديد أعلام المعالجات المسبقة المختلفة للتكوينات المختلفة. بعد ذلك ، ستحتاج فقط إلى تحديد التكوين في سطر الأوامر ولا حاجة لملفات حل أو لمشروع متعددة.