boost-1.86.0

Introduksjon til Boost

Boost gir et sett med gratis fagfellevurderte flyttbare C++ kildebiblioteker. Det inkluderer biblioteker for lineær algebra, generering av pseudotilfeldig tall, flertråding, bildebehandling, vanlige uttrykk og enhetstesting.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

[Notat]

Notat

Denne pakken vil pakke ut til boost-1.86.0/ mappen.

Pakkeinformasjon

Ytterligere Nedlastinger

Boost Avhengigheter

Anbefalt

Valgfri

ICU-75.1, NumPy-2.1.2, og Open MPI

Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/boost

Installasjon av Boost

Først, fikse et problem med Boost og NumPy-2.1.2 som forårsaker at bygget mislykkes:

patch -Np1 -i ../boost-1.86.0-upstream_fixes-1.patch

Deretter fikser du et byggeproblem som oppstår i stacktrace biblioteket. Dette problemet er spesifikt for i686-systemer.

case $(uname -m) in
   i?86)
      sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \
          -i ./libs/stacktrace/src/exception_headers.h ;;
esac

Denne pakken kan bygges med flere jobber som kjører parallelt. I instruksjonene nedenfor, <N> står for antall jobber. Installer Boost ved å kjøre fålgende kommandoer:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N> threading=multi link=shared

For å kjøre Boost.Build's regresjonstester, utsted pushd tools/build/test; python3 test_all.py; popd.

For å kjøre hvert biblioteks regresjonstester, utsted pushd status; ../b2; popd. Noen få tester kan mislykkes. Det tar veldig lang tid (over 119 SBU ved -j4) og bruker en veldig stor mengde diskplass 46 GB). Du bør bruke -jN bryteren for å øke hastigheten.

[Notat]

Notat

Boost installerer mange versjonsmapper i /usr/lib/cmake. Hvis en ny versjon av Boost er installert over en tidligere versjon, må de eldre cmake mappene bli eksplisitt fjernet. For å gjøre dette, kjør som root bruker:

rm -rf /usr/lib/cmake/[Bb]oost*

før du installerer den nye versjonen.

Nå som root bruker:

./b2 install threading=multi link=shared

Parameterforklaringer

threading=multi: Denne parameteren sikrer at Boost er bygget med støtte for flere tråder.

link=shared: Denne parameteren sikrer at bare delte biblioteker opprettes, bortsett fra libboost_exception og libboost_test_exec_monitor som er opprettet som statiske. Folk flest vil ikke trenge de statiske bibliotekene, og de fleste programmer som bruker Boost bruker kun deklarasjonene. Utelate denne parameteren hvis du trenger statiske biblioteker.

--with-python=python3: Denne bryteren sikrer at Python3 brukes hvis Python2 er installert.

-jN: Denne bryteren kan legges til b2 kommandolinjer, for å kjøre opp til N prosesser parallell.

Innhold

Installerte Programmer: Ingen
Installerte Biblioteker: libboost_atomic.so, libboost_charconv.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy312.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python312.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_url.so, libboost_wave.so, og libboost_wserialization.so
Installert Mappe: /usr/include/boost

Korte Beskrivelser

libboost_*.so

inneholder biblioteker som tilbyr en rekke funksjoner, inkludert innpakninger for NumPy, lineær algebra, generering av pseudotilfeldige tall, flertråding, bildebehandling, regulære uttrykk, enhetstesting, lokaliteter, JSON, logging, grafer og feilsøking