Bu sayfada, Bazel'ı C++ projeleriyle kullanmanıza yardımcı olacak kaynaklar bulunmaktadır. Bir eğiticiye, derleme kurallarına ve Bazel ile C++ projeleri oluşturmaya özel diğer bilgilere bağlantı verir.
Bazel ile çalışma
Aşağıdaki kaynaklar, C++ projelerinde Bazel ile çalışmanıza yardımcı olur:
- Eğitim: C++ projesi oluşturma
- C++ yaygın kullanım alanları
- C/C++ kuralları
- Temel Kitaplıklar
- C++ araç zinciri yapılandırması
- Eğitim: C++ araç zincirlerini yapılandırma
- C++ kurallarıyla entegrasyon
En iyi uygulamalar
Bazel ile ilgili genel en iyi uygulamalara ek olarak, aşağıda C++ projelerine özel en iyi uygulamalar yer almaktadır.
BUILD dosyaları
BUILD dosyalarınızı oluştururken aşağıdaki yönergeleri izleyin:
Her
BUILD
dosyası, dizindeki her derleme birimi için bircc_library
kural hedefi içermelidir.Artımlılığı en üst düzeye çıkarmak ve derlemeyi paralel yapmak için C++ kitaplıklarınızı mümkün olduğunca ayrıntılı hale getirmelisiniz.
srcs
ürününde tek bir kaynak dosya varsa kitaplığı, söz konusu C++ dosyasının adıyla aynı şekilde adlandırın. Bu kitaplık C++ dosyalarını, eşleşen başlık dosyalarını ve kitaplığın doğrudan bağımlılıklarını içermelidir. Örneğin:cc_library( name = "mylib", srcs = ["mylib.cc"], hdrs = ["mylib.h"], deps = [":lower-level-lib"] )
Dosyadaki her
cc_library
hedefi için bircc_test
kural hedefi kullanın. Hedef[library-name]_test
ve kaynak dosyayı[library-name]_test.cc
olarak adlandırın. Örneğin, yukarıda gösterilenmylib
kitaplık hedefi için bir test hedefi şöyle görünür:cc_test( name = "mylib_test", srcs = ["mylib_test.cc"], deps = [":mylib"] )
Yolları dahil edin
Yolları dahil etmek için şu yönergeleri izleyin:
Tüm öğelerin çalışma alanı dizinine göre yol içermesini sağlayın.
Sistem dışı başlıklar için açılı parantezleri (
#include <foo/bar/baz.h>
) değil, tırnak içine alınmış içermeleri (#include "foo/bar/baz.h"
) kullanın..
(geçerli dizin) veya..
(üst dizin) gibi UNIX dizin kısayollarını kullanmaktan kaçının.Harici kod deposunun ön ek gerektirmesi gibi, proje deposunun dışına işaret etmeyi gerektiren eski veya
third_party
kodları içincc_library
kural hedefindeinclude_prefix
vestrip_include_prefix
bağımsız değişkenlerini kullanın.