प्रतिलिपि टूल जानकारी

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

इस्तेमाल किए जा रहे C++ कंपाइलर के बारे में जानकारी.

सदस्य

all_files

depset CcToolchainInfo.all_files

यह टूलचेन की सभी फ़ाइलें दिखाता है, ताकि उन्हें इस टूलचेन का इस्तेमाल करके कार्रवाइयों में इनपुट के तौर पर पास किया जा सके.

ar_executable

string CcToolchainInfo.ar_executable

ar बाइनरी का पाथ.

built_in_include_directories

list CcToolchainInfo.built_in_include_directories

यह फ़ंक्शन, कंपाइलर की बिल्ट-इन डायरेक्ट्री की सूची दिखाता है.

कंपाइलर

string CcToolchainInfo.compiler

C++ कंपाइलर. इसमें None मिल सकता है.

compiler_executable

string CcToolchainInfo.compiler_executable

कंपाइलर बाइनरी का पाथ.

सीपीयू

string CcToolchainInfo.cpu

C++ टूलचेन का टारगेट सीपीयू. इसमें 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_executable

gcov बाइनरी का पाथ.

ld_executable

string CcToolchainInfo.ld_executable

ld बाइनरी का पाथ.

libc

string CcToolchainInfo.libc

libc वर्शन स्ट्रिंग. इसमें 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_executable

nm बाइनरी का पाथ.

objcopy_executable

string CcToolchainInfo.objcopy_executable

objcopy बाइनरी का पाथ.

objdump_executable

string CcToolchainInfo.objdump_executable

objdump बाइनरी का पाथ.

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 को दिखाता है. अगर टूलचेन कंपाइलर अलग-अलग sysroot के साथ काम नहीं करता है या sysroot, डिफ़ॉल्ट sysroot के जैसा ही है, तो यह तरीका None दिखाता है. इसमें None मिल सकता है.

target_gnu_system_name

string CcToolchainInfo.target_gnu_system_name

GNU सिस्टम का नाम. इसमें None मिल सकता है.

to_json

string CcToolchainInfo.to_json()

अब सेवा में नहीं है. यह एपीआई अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. ---incompatible_struct_has_no_methods के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी.
struct पैरामीटर से 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 के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी.
यह struct पैरामीटर से एक टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (रिकर्सिव) स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर या डिक्शनरी या इन टाइप की सूचियां हों. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
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) का इस्तेमाल करें.