Introduksjon til Protobuf
Protobuf pakken inneholder verktøy
og biblioteker for bruk av data i Googles datautvekslingsformat.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.2 plattform.
Pakkeinformasjon
Protobuf Avhengigheter
Påkrevd
Abseil-cpp-20240722.0 og CMake-3.30.2
Valgfri
gtest
(for tester)
Installasjon av Protobuf
Installer Protobuf ved å kjøre
følgende kommandoer:
mkdir build &&
cd build &&
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-D protobuf_BUILD_TESTS=OFF \
-D protobuf_ABSL_PROVIDER=package \
-D protobuf_BUILD_LIBUPB=OFF \
-D protobuf_BUILD_SHARED_LIBS=ON \
-D utf8_range_ENABLE_INSTALL=OFF \
-G Ninja .. &&
ninja
Denne pakken kommer med en testpakke, men den krever gtest, som
ikke er en del av BLFS.
Nå, som root
bruker:
sed 's/utf8_range//' -i *.pc &&
ninja install
Parameterforklaringer
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Denne bryteren gjør at
cmake fjerner
hardkodede biblioteksøkebaner (rpath) når du installerer en binær
kjørbar fil eller et delt bibliotek. Denne pakken trenger ikke
rpath når den først er installert i standard plassering, og rpath
kan noen ganger forårsake uønskede effekter eller til og med
sikkerhetsproblemer.
sed 's/utf8_range//' -i
*.pc: Denne kommandoen fjerner en gjenværende
referanse til libutf8_range fra pkg-config-filene installert av
denne pakken.
-D
protobuf_BUILD_TESTS=OFF
: Denne parameteren forhindrer
testene fra å bygges pga gtest ikke er en del av
BLFS.
-D
protobuf_ABSL_PROVIDER=package
: Denne parameteren lar
byggesystemet bruke den systeminstallerte kopien av Abseil-cpp-20240722.0.
-D
protobuf_BUILD_SHARED_LIBS=ON
: Denne parameteren gjør
det mulig å bygge delte versjoner av bibliotekene som tilbys av
denne pakken i stedet for statiske versjoner.
-D
utf8_range_ENABLE_INSTALL=OFF
: Denne parameteren
deaktiverer installasjon av utf8_range statiske bibliotek.
Funksjonene levert av dette biblioteket og brukt av protobuf er
allerede innebygd i libprotobuf.so
,
så å installere en full kopi av det statiske biblioteket sløser
bare med diskplass.