Trojaczki
Triplet to standardowy termin używany w kompilowaniu krzyżowym jako sposób całkowitego przechwytywania środowiska docelowego (procesora CPU, systemu operacyjnego, kompilatora, środowiska uruchomieniowego itp.) w jednej, wygodnej nazwie.
W narzędziu vcpkg trojacy opisują wyimaginowany "docelowy zestaw konfiguracji" dla każdej biblioteki. W ramach trypletu biblioteki są zwykle kompilowane przy użyciu tej samej konfiguracji, ale nie jest to wymagane. Na przykład można mieć jeden potrójny, który tworzy openssl
statycznie i zlib
dynamicznie, taki, który kompiluje je zarówno statycznie, jak i jeden, który kompiluje je dynamicznie (wszystkie dla tego samego docelowego systemu operacyjnego i architektury).
Pojedyncza kompilacja będzie używać plików z maksymalnie dwóch trojaków: triplet docelowy i triplet hosta. Jeśli musisz zastosować różne ustawienia dla różnych bibliotek, musisz utworzyć pojedynczą niestandardową trójkę z użyciem tej kombinacji ustawień. Zobacz dostosowywanie poszczególnych portów, aby dowiedzieć się, jak to zrobić.
Narzędzie vcpkg zawiera wstępnie zdefiniowane trojaczki dla wielu typowych platform i konfiguracji. Uruchom polecenie vcpkg help triplet
, aby uzyskać listę dostępnych trojaków w swoim środowisku.
Wybór potrójny
Aby wybrać docelową trójkę:
- W trybie klasycznym:
- Kwalifikowanie odwołań do pakietu z potrójną nazwą, taką jak
zlib:x64-windows-static-md
. - Przekaż
--triplet=<triplet>
.
- Kwalifikowanie odwołań do pakietu z potrójną nazwą, taką jak
- W narzędziu CMake:
- Ustaw wartość
VCPKG_TARGET_TRIPLET
.
- Ustaw wartość
- W programie MSBuild:
- Ustaw wartość
VcpkgTriplet
.
- Ustaw wartość
Aby wybrać triplet hosta dla bieżącej maszyny:
- W trybie klasycznym:
- Przekaż
--host-triplet=<triplet>
.
- Przekaż
- W narzędziu CMake:
- Ustaw wartość
VCPKG_HOST_TRIPLET
.
- Ustaw wartość
- W programie MSBuild:
- Ustaw wartość
VcpkgHostTriplet
.
- Ustaw wartość
Trojaczki społeczności
Potrójne zawarte w folderze triplets\community
nie są testowane przez ciągłą integrację rejestru nadzorowanego, ale są często wymagane przez społeczność. Ponieważ nie mamy ciągłego pokrycia, aktualizacje portów mogą przerwać zgodność z trojakami społeczności. Chętnie akceptujemy i przeglądamy wkład, który ma na celu rozwiązanie problemów z tymi trojakami.
W przypadku korzystania z potrójnej społeczności podczas instalacji pakietu zostanie wydrukowany komunikat podobny do następującego:
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake
Dodawanie lub zastępowanie trójkropków
Narzędzie vcpkg można rozszerzyć, zastępując trzykropki w polu lub tworząc nowe trojaczki dla danego projektu.
Najpierw skopiuj wbudowany plik potrójny z triplets\
katalogu do innej lokalizacji systemu plików. Następnie dodaj ten katalog do listy ścieżek potrójnych nakładek podczas interakcji z vcpkg.
- W trybie manifestu można użyć polecenia
$.vcpkg-configuration.overlay-triplets
. - W przypadku korzystania z narzędzia vcpkg z narzędzia CMake można ustawić wartość
VCPKG_OVERLAY_TRIPLETS
. - W przypadku korzystania z programu vcpkg z programu MSBuild możesz dodać
--overlay-triplets=...
do programu MSBuild Dodatkowe opcje. - Korzystając bezpośrednio z interfejsu wiersza polecenia, możesz przekazać
--overlay-triplets=...
polecenie . - Zmienną
$VCPKG_OVERLAY_TRIPLETS
środowiskową można ustawić na listę ścieżek nakładek.
Zobacz nasz przykład trójkropków nakładek, aby zapoznać się z bardziej szczegółowym przewodnikiem.
Uwaga
Nazwy potrójne mogą zawierać tylko małe litery alfanumeryczne i łączniki.
Uwagi
Domyślny triplet podczas uruchamiania dowolnego polecenia vcpkg to %VCPKG_DEFAULT_TRIPLET%
lub wybór specyficzny dla platformy, jeśli ta zmienna środowiskowa jest niezdefiniowana.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
Zalecamy użycie systematycznego schematu nazewnictwa podczas tworzenia nowych trójek. Schemat nazewnictwa łańcucha narzędzi systemu Android jest dobrym źródłem inspiracji: https://developer.android.com/ndk/guides/standalone_toolchain.html.