इस पेज पर ऐसे संसाधन दिए गए हैं जो C++ प्रोजेक्ट के साथ Baज़ल का इस्तेमाल करने में आपकी मदद करेंगे. यह Basel के साथ C++ प्रोजेक्ट बनाने के लिए खास तौर पर ट्यूटोरियल, बिल्ड नियम और दूसरी जानकारी के लिंक देता है.
बेज़ल के साथ काम करना
नीचे दिए गए संसाधनों की मदद से, C++ प्रोजेक्ट पर Baज़र के साथ काम करने में मदद मिलेगी:
- ट्यूटोरियल: C++ प्रोजेक्ट बनाना
- C++ इस्तेमाल के सामान्य उदाहरण
- C/C++ के नियम
- ज़रूरी लाइब्रेरी
- C++ टूलचेन कॉन्फ़िगरेशन
- ट्यूटोरियल: C++ टूलचेन को कॉन्फ़िगर करना
- C++ के नियमों के साथ इंटिग्रेट करना
सबसे सही तरीके
Basel के सामान्य सबसे सही तरीकों के अलावा, यहां 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
कोड में, प्रोजेक्ट रिपॉज़िटरी के बाहर पॉइंट करना ज़रूरी है, जैसे कि एक्सटर्नल रिपॉज़िटरी में प्रीफ़िक्स की ज़रूरत होती है, तोcc_library
नियम के टारगेट परinclude_prefix
औरstrip_include_prefix
आर्ग्युमेंट का इस्तेमाल करें.