इस्तेमाल किए जा रहे C++ कंपाइलर के बारे में जानकारी.
सदस्य
- all_files
- ar_executable
- built_in_include_directories
- कंपाइलर
- compiler_executable
- cpu
- dynamic_runtime_lib
- gcov_executable
- ld_executable
- libc
- needs_pic_for_dynamic_libraries
- nm_executable
- objcopy_executable
- objdump_executable
- preprocessor_executable
- static_runtime_lib
- strip_executable
- sysroot
- target_gnu_system_name
- to_json
- to_proto
all_files
depset CcToolchainInfo.all_filesसभी टूलचेन फ़ाइलें दिखाता है, ताकि इनका इस्तेमाल इनपुट के तौर पर टूलचेन की मदद से, कार्रवाइयों में किया जा सके.
ar_executable
string CcToolchainInfo.ar_executablear बाइनरी का पाथ.
built_in_include_directories
list CcToolchainInfo.built_in_include_directoriesकंपाइलर की पहले से मौजूद डायरेक्ट्री की सूची दिखाता है.
कंपाइलर
string CcToolchainInfo.compilerC++ कंपाइलर.
None
को वापस किया जा सकता है.
compiler_executable
string CcToolchainInfo.compiler_executableकंपाइलर बाइनरी का पाथ.
सीपीयू
string CcToolchainInfo.cpuC++ टूलचेन का टारगेट सीपीयू.
None
को वापस किया जा सकता है.
dynamic_runtime_lib
depset CcToolchainInfo.dynamic_runtime_lib(feature_configuration)`dynamic_runtime_lib` एट्रिब्यूट से फ़ाइलें दिखाता है, ताकि इन टूलचेन का इस्तेमाल करके, इनपुट के तौर पर कार्रवाइयों को फ़ाइलें भेजी जा सकें. कॉलर यह देख सकता है कि feature_configuration, `static_link_cpp_runtimes` सुविधा को चालू करता है या नहीं. अगर नहीं, तो `static_runtime_lib` या `dynamic_runtime_lib` में से किसी का भी इस्तेमाल नहीं करना होगा. साथ ही, अगर स्टैटिक लिंकिंग मोड चालू है, तो `static_runtime_lib` का इस्तेमाल करें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
feature_configuration
|
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
gcov_executable
string CcToolchainInfo.gcov_executablegcov बाइनरी का पाथ.
ld_executable
string CcToolchainInfo.ld_executableld बाइनरी का पाथ.
libc
string CcToolchainInfo.libclibc वर्शन स्ट्रिंग.
None
को वापस किया जा सकता है.
needs_pic_for_dynamic_libraries
bool CcToolchainInfo.needs_pic_for_dynamic_libraries(feature_configuration)अगर इस नियम के कंपाइलेशन में -fPIC लागू होना चाहिए, तो यह फ़ंक्शन 'सही' दिखाता है. ऐसा न होने पर, यह 'गलत' दिखाता है. इससे यह तय होता है कि हमें इस नियम के C++ कंपाइलेशन के लिए -fPIC लागू करना चाहिए या नहीं. यह C++ टूलचेन और `--force_pic` Bazel विकल्प की मौजूदगी पर निर्भर करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
feature_configuration
|
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
nm_executable
string CcToolchainInfo.nm_executablenm बाइनरी का पाथ.
objcopy_executable
string CcToolchainInfo.objcopy_executableobjcopy बाइनरी का पाथ.
objdump_executable
string CcToolchainInfo.objdump_executableobjdump बाइनरी का पाथ.
preprocessor_executable
string CcToolchainInfo.preprocessor_executableप्रीप्रोसेसर बाइनरी का पाथ.
static_runtime_lib
depset CcToolchainInfo.static_runtime_lib(feature_configuration)`static_runtime_lib` एट्रिब्यूट से फ़ाइलें दिखाता है, ताकि इन टूलचेन का इस्तेमाल करके, इनपुट के तौर पर कार्रवाइयों को फ़ाइलें दी जा सकें. कॉलर को यह देखना चाहिए कि feature_configuration, `static_link_cpp_runtimes` सुविधा को चालू करता है या नहीं. अगर नहीं, तो `static_runtime_lib` या `dynamic_runtime_lib` में से किसी का भी इस्तेमाल नहीं किया जाना चाहिए. साथ ही, डाइनैमिक लिंकिंग मोड चालू होने पर, `dynamic_runtime_lib` का इस्तेमाल करें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
feature_configuration
|
ज़रूरी है जिस सुविधा के कॉन्फ़िगरेशन के बारे में क्वेरी करनी है. |
strip_executable
string CcToolchainInfo.strip_executableस्ट्रिप बाइनरी का पाथ.
sysroot
string CcToolchainInfo.sysrootइस्तेमाल किया जाने वाला sysroot दिखाता है. अगर टूलचेन कंपाइलर अलग-अलग सिस्टम के साथ काम नहीं करता है या सिस्टम डिफ़ॉल्ट सिस्टम के तौर पर काम करता है, तो यह तरीका
None
दिखाता है.
None
को वापस किया जा सकता है.
target_gnu_system_name
string CcToolchainInfo.target_gnu_system_nameGNU सिस्टम का नाम.
None
को वापस किया जा सकता है.
to_json
string CcToolchainInfo.to_json()अब काम नहीं करता. इस एपीआई के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें.
---incompatible_struct_has_no_methods
के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. स्ट्रक्ट पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, इंटेस, बूलियन, अन्य स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग कुंजियों और इन टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में कोट और नई लाइनें छोड़ दी जाती हैं. उदाहरण:
struct(key=123).to_json() # {"key":123} struct(key=True).to_json() # {"key":true} struct(key=[1, 2, 3]).to_json() # {"key":[1,2,3]} struct(key='text').to_json() # {"key":"text"} struct(key=struct(inner_key='text')).to_json() # {"key":{"inner_key":"text"}} struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json() # {"key":[{"inner_key":1},{"inner_key":2}]} struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json() # {"key":{"inner_key":{"inner_inner_key":"text"}}}.
अब काम नहीं करता: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. ये फ़ंक्शन, स्ट्रक्चर के अलावा अन्य वैल्यू के लिए काम करते हैं. साथ ही, स्ट्रक्चर फ़ील्ड नेमस्पेस को भी गंदा नहीं करते.
to_proto
string CcToolchainInfo.to_proto()अब काम नहीं करता. इस एपीआई के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें.
---incompatible_struct_has_no_methods
के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. स्ट्रक्ट पैरामीटर से टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, ints, बूलियन, दूसरे स्ट्रक्चर या dicts या इस तरह की सूचियां हों. स्ट्रिंग में कोटेशन और नई लाइन को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
struct(key=123).to_proto() # key: 123 struct(key=True).to_proto() # key: true struct(key=[1, 2, 3]).to_proto() # key: 1 # key: 2 # key: 3 struct(key='text').to_proto() # key: "text" struct(key=struct(inner_key='text')).to_proto() # key { # inner_key: "text" # } struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto() # key { # inner_key: 1 # } # key { # inner_key: 2 # } struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto() # key { # inner_key { # inner_inner_key: "text" # } # } struct(foo={4: 3, 2: 1}).to_proto() # foo: { # key: 4 # value: 3 # } # foo: { # key: 2 # value: 1 # }
काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.