سلام.
در g++ و CMake نیز میتوانید به همان روشی که در Visual Studio انجام میدادید، تعریفهای ترجمهگر زمان کامپایل (compile-time preprocessor definitions) را انجام دهید. تعریفهای ترجمهگر زمان کامپایل به شما امکان میدهند کد را قبل از فرآیند کامپایل تغییر دهید. برای تعریف تعریفهای ترجمهگر زمان کامپایل در این محیطها، میتوانید از پرچم `-D` در g++ و دستور `add_compile_definitions` در CMake استفاده کنید.
در g++، میتوانید تعریفهای پیشپردازنده را با استفاده از پرچم `-D` در دستور کامپایل انجام دهید. در ادامه یک مثال آورده شده است:
g++ -DMY_FLAG main.cpp -o output
در این مثال، `-DMY_FLAG` یک ماکروی پیشپردازنده به نام `MY_FLAG` را تعریف میکند. شما میتوانید `main.cpp` را با فایل(های) منبع خود و `output` را با نام فایل خروجی مورد نظر جایگزین کنید.
در CMake، میتوانید از دستور `add_compile_definitions` در فایل `CMakeLists.txt` خود برای تعریف تعریفهای ترجمهگر زمان کامپایل استفاده کنید. در ادامه مثالی آورده شده است:
add_compile_definitions(MY_FLAG)
در این مثال، `MY_FLAG` به عنوان یک ماکروی پیشپردازنده تعریف میشود.
این تعریفها بر روی فرآیند کامپایل تأثیر میگذارند و به شما اجازه میدهند بخشهای خاصی از کد را بر اساس تعریفهای تعیین شده شرطی کامپایل کنید.
لطفاً توجه داشته باشید که نحو و استفاده ممکن است بسته به پروژه و پیکربندی ساخت شما متفاوت باشد. بهتر است از مستندات g++ و CMake برای کسب اطلاعات بیشتر درباره نحوه تعریف تعریفهای ترجمهگر زمان کامپایل در محیط خاص خود استفاده کنید.