سؤال

أتعلم مكتبة Boost Preprocessor (لأنني بحاجة إلى استخدامها) ، وأردت تجربة آلية تكرار الملفات. لقد قمت بإعداد مشروع الحد الأدنى مع A.CPP و B.HPP. ما أحاول القيام به هو تضمين العديد من الوقت B.HPP عبر Boost PP:

#include <boost/preprocessor/iteration/iterate.hpp>

#define BOOST_PP_ITERATION_LIMITS (0, 5)
#define BOOST_PP_FILENAME_1 "b.hpp"
#include BOOST_PP_ITERATE()

عندما أحاول التجميع (مع -e لرؤية نتيجة المعالج المسبق):

g++ -E a.cpp > pp_result

حصلت على هذا الخطأ:

في الملف المدرج من A.CPP: /usr/local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:37: خطأ: B.HPP: لا يوجد ملف أو دليل من هذا القبيل

B.HPP في نفس الدليل ، لا أستطيع أن أرى ما أخطأ فيه. يبدو أن G ++ يبحث B.HPP في نفس الدليل مثل Forward1.hpp ، ولكن بعد وثائق Boost يجب أن يعمل الكود الخاص بي (إصدار Boost الخاص بي هو 1.44).

هل يعاني أي شخص من نفس المشكلة؟

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

المحلول

نعم ، تحتاج إلى إضافة -I. إلى سطر الأوامر لجعله يعمل. هذا يضيف الدليل الذي بدأت GCC في مسار البحث ، مما يسمح للمترجم بالعثور على الملف b.hpp.

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