इस पेज पर ऐसे संसाधन दिए गए हैं जो C++ प्रोजेक्ट के साथ Baज़ल का इस्तेमाल करने में आपकी मदद करेंगे. यह लिंक करता है ट्यूटोरियल, नियम बनाने, और C++ बनाने के बारे में अन्य जानकारी प्रोजेक्ट पर काम किया.
बेज़ल के साथ काम करना
नीचे दिए गए संसाधनों की मदद से, C++ प्रोजेक्ट पर Baज़र के साथ काम करने में मदद मिलेगी:
- ट्यूटोरियल: C++ प्रोजेक्ट बनाना
- C++ इस्तेमाल के सामान्य उदाहरण
- C/C++ के नियम
- ज़रूरी लाइब्रेरी
- C++ टूलचेन कॉन्फ़िगरेशन
- ट्यूटोरियल: C++ टूलचेन को कॉन्फ़िगर करना
- C++ के नियमों के साथ इंटिग्रेट करना
सबसे सही तरीके
बेज़ल से जुड़े सबसे सही सामान्य तरीकों के अलावा, यहां दिए गए हैं C++ प्रोजेक्ट के लिए सबसे सही तरीके.
फ़ाइलें बनाएं
अपनी BUILD फ़ाइलें बनाते समय इन दिशा-निर्देशों का पालन करें:
हर
BUILD
फ़ाइल में एकcc_library
होना चाहिए नियम टारगेट की संख्या को डायरेक्ट्री में हर कंपाइलेशन यूनिट के हिसाब से तय किया जाता है.आपको अपनी C++ लाइब्रेरी को भी उतना ही बड़ा करना चाहिए बिल्ड के साथ-साथ लोड होने और उसे बढ़ाने में भी मदद मिलती है.
अगर
srcs
में एक सोर्स फ़ाइल है, तो लाइब्रेरी का नाम इसके जैसा ही रखें उस C++ फ़ाइल का नाम डालें. इस लाइब्रेरी में C++ फ़ाइल(फ़ाइलें), इनसे मेल खाने वाली कोई भी फ़ाइल होनी चाहिए हेडर फ़ाइल(फ़ाइलों) और लाइब्रेरी की डायरेक्ट डिपेंडेंसी के लिए किया जा सकता है. उदाहरण के लिए:cc_library( name = "mylib", srcs = ["mylib.cc"], hdrs = ["mylib.h"], deps = [":lower-level-lib"] )
फ़ाइल में हर
cc_library
टारगेट के लिए,cc_test
नियम के एक टारगेट का इस्तेमाल करें. नाम टारगेट[library-name]_test
और सोर्स फ़ाइल[library-name]_test.cc
. उदाहरण के लिए, ऊपर दिखाए गएmylib
लाइब्रेरी टारगेट के लिए टेस्ट टारगेट इस तरह दिखें:cc_test( name = "mylib_test", srcs = ["mylib_test.cc"], deps = [":mylib"] )
पाथ शामिल करें
पाथ शामिल करने के लिए इन दिशा-निर्देशों का पालन करें:
फ़ाइल फ़ोल्डर डायरेक्ट्री से जुड़े सभी पाथ शामिल करें.
नॉन-सिस्टम हेडर के लिए कोट किए गए इनक्लूड (
#include "foo/bar/baz.h"
) का इस्तेमाल करें, नहीं ऐंगल ब्रैकेट (#include <foo/bar/baz.h>
).UNIX डायरेक्ट्री शॉर्टकट, जैसे कि
.
(मौजूदा डायरेक्ट्री) या..
का इस्तेमाल करने से बचें (पैरंट डायरेक्ट्री).लेगसी या
third_party
कोड के लिए, जिसमें कोड के बाहर रखना ज़रूरी है प्रोजेक्ट रिपॉज़िटरी जैसे कि एक्सटर्नल रिपॉज़िटरी में प्रीफ़िक्स की ज़रूरत होती है.include_prefix
का इस्तेमाल करें औरstrip_include_prefix
cc_library
नियम के टारगेट पर आर्ग्युमेंट.
टूलचेन की सुविधाएं
ये वैकल्पिक सुविधाएं
C++ प्रोजेक्ट की हाइजीन को बेहतर बनाया जा सकता है. इन्हें चालू करने के लिए,
--features
कमांड लाइन फ़्लैग या इसका features
एट्रिब्यूट
repo
,
package
या cc_*
नियम:
parse_headers
सुविधा से यह पक्का होता है कि पार्स करने के लिए C++ कंपाइलर का इस्तेमाल किया जाए बिल्ट-इन टारगेट और उनकी डिपेंडेंसी में मौजूद सभी हेडर फ़ाइलें (इसे कंपाइल नहीं किया जाता) का इस्तेमाल करते समय--process_headers_in_dependencies
फ़्लैग करें. इसकी मदद से, सिर्फ़ हेडर वाली लाइब्रेरी में आने वाली समस्याओं का पता लगाया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि हेडर में पूरी जानकारी होती है. साथ ही, यह किसी भी क्रम में हो सकता है शामिल हैं.layering_check
सुविधा लागू करती है कि टारगेट में सिर्फ़ हेडर शामिल होते हैं उपलब्ध करा सकता है. डिफ़ॉल्ट टूलचेन इसके साथ काम करता है इस सुविधा को Linux पर, कंपाइलर के तौर परclang
के साथ सेट किया गया है.