كيف يمكنني التوقف عن السيارات من إضافة - أنا. إلى خط الترجمة الخاص بي؟

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

سؤال

كيف يمكنني التوقف عن السيارات من إضافة - أنا. إلى خط الترجمة الخاص بي؟

يبدو أن كائنات Automake أو Libtool دائما تحتوي على أمر ترجمة مشابه ل:

g++ -DHAVE_CONFIG_H -I. -I./proj/otherdir -o myprog.o myprog.c

المشكلة هي أن لدي ملفات رأسين بنفس الاسم ....

./proj/otherdir/Header.h
./proj/thisdir/Header.h

يحتوي كل رأس رأس مسمى فئة، على الرغم من أن كل منها في مساحة اسم مختلفة. لذلك عندما أقوم ببناء في ./proj/thisdir، "-I". يتم تضمينه ولا يمكنني الوصول إلى الرأس في ./proj/otherdir

أنا لا أعرف كيفية التخلص من تلك الأولي "-". الذي يظهر.

أي تلميحات؟

شكرا chenz.

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

المحلول

كل ما عليك فعله هو تعيين في makefile.am

DEFAULT_INCLUDES =

ثم كل شيء جيد في العالم.

شينز

نصائح أخرى

إذا كان API الخاص بك يتضمن رؤوس مختلفة عندما أكتب

#include <Header.h>

هذا يجعل هذا API مربكة وخطأ عرضة.

لماذا لا تحدد API الخاص بك

#include <thisdir/Header.h>

و

#include <otherdir/Header.h>

ثم يمكنك الرجوع إلى كلا الرأسين في نفس الملف المصدر إذا لزم الأمر. وأنت تعرف فقط من قراءة خط التضمين ما يشمله فعلا.

إلقاء نظرة على التكوين .ac أو configure.in لتطبيقك، يجب أن يكون هناك

لا تتخلص مني.، ولكن يمكنك وضع المسارات النسبية في حياتك #include التوجيهات:

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top