2014-06-26 7 views
7

मैं YouCompleteMe का उपयोग करके कुछ C++ शीर्षलेख फ़ाइलों के साथ काम कर रहा हूं। हेडर फ़ाइल में उन सभी अन्य शीर्षलेख फ़ाइलों को शामिल नहीं किया गया है जिन्हें इसे उपयोग करने वाले सभी वर्गों को खोजने के लिए आवश्यक है। हेडर फ़ाइल को संशोधित किए बिना, क्या मैं अपनी .ycm_extra_conf.py फ़ाइल को संशोधित कर सकता हूं ताकि अतिरिक्त शीर्षलेख फ़ाइलों के बारे में पता चल सके?YouCompleteMe, हेडर फ़ाइलें

उदाहरण के तौर पर, मान लीजिए कि मेरे पास तीन फाइलें "एएच", "बीएच", और "सीसीसी" हैं।

C.cc

#include "A.h" 
#include "B.h" 

आह

class A {}; 

Bh

class B : A {}; 

बी शामिल फ़ाइल अपने आप पर संकलन नहीं कर सकते, लेकिन C.cc सही ढंग से संकलित कर देगा, क्योंकि यह भी शामिल है सही क्रम में चीजें। हालांकि, अगर मैं स्वयं पर बीएच खोलता हूं, तो यह ए के बारे में शिकायत करेगा कि परिभाषित नहीं किया जा रहा है।

मुझे पता है कि सीसीसी सही ढंग से संकलित करता है, तो मैं उसी संदर्भ में संकलित करने के लिए बीएच खोलने पर वाईसीएम कैसे कहूं, यह सीसीसी के लिए उपयोग करेगा? वाईसीएम को फ़ाइल को संकलित करने के तरीके को ध्वजांकित करने के लिए ध्वज अपर्याप्त प्रतीत होता है, क्योंकि इसे सीसीसी के साथ संकलित करने की आवश्यकता है।

+1

अपने अंतिम वाक्य क्या मतलब है? – sehe

+0

हाय सेहे, मैंने इस मुद्दे को और स्पष्ट रूप से समझाने के लिए टिप्पणी अपडेट की है। धन्यवाद! – archgoon

उत्तर

4

में अपने .ycm_extra_conf.py अपने नियमित रूप से पूर्वप्रक्रमक झंडे जोड़ने, उदा .:

flags = [ 
'-Wall', 
'-Wextra', 
'-Wno-variadic-macros', 
'-fexceptions', 
'-DNDEBUG', 
'-DUNIT_TESTS', 
'-std=c++11', 
'-x', 'c++', 
'-isystem', '/home/sehe/custom/boost', 
'-isystem', '/usr/lib/gcc/x86_64-linux-gnu/4.8/include', 
'-I', 'src', 
'-I', 'include', 
'-isystem', '/usr/include', 
'-isystem', '/usr/local/include', 
] 
संबंधित मुद्दे