CcToolchainInfo

Báo cáo vấn đề Xem nguồn Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Thông tin về trình biên dịch C++ đang được sử dụng.

Hội viên

all_files

depset CcToolchainInfo.all_files

Trả về tất cả tệp chuỗi công cụ (để có thể truyền các tệp này đến các hành động bằng cách sử dụng chuỗi công cụ này làm dữ liệu đầu vào).

ar_executable

string CcToolchainInfo.ar_executable

Đường dẫn đến tệp nhị phân ar.

built_in_include_directories

list CcToolchainInfo.built_in_include_directories

Trả về danh sách các thư mục tích hợp sẵn của trình biên dịch.

trình biên dịch

string CcToolchainInfo.compiler

Trình biên dịch C++. Có thể trả về None.

compiler_executable

string CcToolchainInfo.compiler_executable

Đường dẫn đến tệp nhị phân của trình biên dịch.

cpu

string CcToolchainInfo.cpu

CPU mục tiêu của chuỗi công cụ C++. Có thể trả về None.

dynamic_runtime_lib

depset CcToolchainInfo.dynamic_runtime_lib(feature_configuration)

Trả về các tệp từ thuộc tính `dynamic_runtime_lib` (để có thể truyền các tệp này đến các hành động bằng cách sử dụng chuỗi công cụ này làm dữ liệu đầu vào). Phương thức gọi có thể kiểm tra xem feature_configuration có bật tính năng `static_link_cpp_runtimes` hay không (nếu không, bạn không cần sử dụng `static_runtime_lib` hoặc `dynamic_runtime_lib`) và sử dụng `static_runtime_lib` nếu chế độ liên kết tĩnh đang hoạt động.

Tham số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.

gcov_executable

string CcToolchainInfo.gcov_executable

Đường dẫn đến tệp nhị phân gcov.

ld_executable

string CcToolchainInfo.ld_executable

Đường dẫn đến tệp nhị phân ld.

libc

string CcToolchainInfo.libc

Chuỗi phiên bản libc. Có thể trả về None.

needs_pic_for_dynamic_libraries

bool CcToolchainInfo.needs_pic_for_dynamic_libraries(feature_configuration)

Trả về true nếu quá trình biên dịch của quy tắc này phải áp dụng -fPIC, nếu không thì trả về false. Xác định xem chúng ta có nên áp dụng -fPIC cho các bản biên dịch C++ của quy tắc này hay không, tuỳ thuộc vào chuỗi công cụ C++ và sự hiện diện của tuỳ chọn Bazel `--force_pic`.

Tham số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.

nm_executable

string CcToolchainInfo.nm_executable

Đường dẫn đến tệp nhị phân nm.

objcopy_executable

string CcToolchainInfo.objcopy_executable

Đường dẫn đến tệp nhị phân objcopy.

objdump_executable

string CcToolchainInfo.objdump_executable

Đường dẫn đến tệp nhị phân objdump.

preprocessor_executable

string CcToolchainInfo.preprocessor_executable

Đường dẫn đến tệp nhị phân của bộ xử lý trước.

static_runtime_lib

depset CcToolchainInfo.static_runtime_lib(feature_configuration)

Trả về các tệp từ thuộc tính `static_runtime_lib` (để có thể truyền các tệp này đến các hành động bằng cách sử dụng chuỗi công cụ này làm dữ liệu đầu vào). Phương thức gọi phải kiểm tra xem feature_configuration có bật tính năng `static_link_cpp_runtimes` hay không (nếu không, bạn không nên sử dụng `static_runtime_lib` hoặc `dynamic_runtime_lib`) và sử dụng `dynamic_runtime_lib` nếu chế độ liên kết động đang hoạt động.

Tham số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.

strip_executable

string CcToolchainInfo.strip_executable

Đường dẫn đến tệp nhị phân của dải.

sysroot

string CcToolchainInfo.sysroot

Trả về sysroot sẽ được sử dụng. Nếu trình biên dịch chuỗi công cụ không hỗ trợ nhiều sysroot hoặc sysroot giống với sysroot mặc định, thì phương thức này sẽ trả về None. Có thể trả về None.

target_gnu_system_name

string CcToolchainInfo.target_gnu_system_name

Tên hệ thống GNU. Có thể trả về None.

to_json

string CcToolchainInfo.to_json()

Không dùng nữa. API này không còn được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào tính năng này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc sắp bị xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả các phần tử cấu trúc (recursion) đều là chuỗi, số nguyên, boolean, cấu trúc khác, danh sách các loại này hoặc từ điển có khoá và giá trị chuỗi của các loại này. Dấu ngoặc kép và dòng mới trong chuỗi được thoát. Ví dụ:
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"}}}
.

Không dùng nữa: thay vào đó, hãy sử dụng json.encode(x) hoặc json.encode_indent(x). Các hàm này hoạt động cho các giá trị khác ngoài cấu trúc và không làm ô nhiễm không gian tên trường cấu trúc.

to_proto

string CcToolchainInfo.to_proto()

Không dùng nữa. API này không còn được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào tính năng này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc sắp bị xoá.
Tạo tin nhắn văn bản từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả các phần tử cấu trúc (recursion) đều là chuỗi, số nguyên, boolean, cấu trúc hoặc từ điển hoặc danh sách của các loại này. Dấu ngoặc kép và dòng mới trong chuỗi được thoát. Các khoá cấu trúc được lặp lại theo thứ tự đã sắp xếp. Ví dụ:
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
# }

Không dùng nữa: hãy sử dụng proto.encode_text(x).