Skip to content

Instantly share code, notes, and snippets.

@EhEhEhEh-labs
Last active May 20, 2025 00:53
Show Gist options
  • Save EhEhEhEh-labs/4bad42f22626e72c8a8223930ebd5e4e to your computer and use it in GitHub Desktop.
Save EhEhEhEh-labs/4bad42f22626e72c8a8223930ebd5e4e to your computer and use it in GitHub Desktop.
lab01

Домашнее задание

  1. Скачайте библиотеку boost с помощью утилиты wget. Адрес для скачивания https://sourceforge.net/projects/boost/files/boost/1.69.0/boost_1_69_0.tar.gz.
$ wget https://sourceforge.net/projects/boost/files/boost/1.69.0/boost_1_69_0.tar.gz
boost_1_69_0.tar.gz   100%[========================>] 106.53M  5.57MB/s    in 25s     
2025-02-28 06:33:54 (4.26 MB/s) - ‘boost_1_69_0.tar.gz’ saved [111710205/111710205]
  1. Разархивируйте скаченный файл в директорию ~/boost_1_69_0
$ tar -xf boost_1_69_0.tar.gz
#Ничего не выводит, просто распаковывет архив в папку с таким же названием.
  1. Подсчитайте количество файлов в директории ~/boost_1_69_0 не включая вложенные директории.
$ find -maxdepth 1 -type f | wc -l
12
#find = spisok filov
#wc -l = podschet kolichestve strok(1 file = 1 stroka)
  1. Подсчитайте количество файлов в директории ~/boost_1_69_0 включая вложенные директории.
$ find -type f | wc -l
61191
  1. Подсчитайте количество заголовочных файлов, файлов с расширением .cpp, сколько остальных файлов (не заголовочных и не .cpp).
$ find -type f -name "*.hpp" -o -name "*.h" | wc -l
15208
$ find -type f -name "*.cpp" | wc -l
13774
$ find -type f -not -name "*.hpp" -a -not  -name "*.h"-a -not  -name "*.cpp"  | wc -l
32505
  1. Найдите полный путь до файла any.hpp внутри библиотеки boost.
$ find -type f -name "any.hpp"
./boost/xpressive/detail/utility/any.hpp
./boost/fusion/algorithm/query/any.hpp
./boost/fusion/algorithm/query/detail/any.hpp
./boost/fusion/include/any.hpp
./boost/spirit/home/support/algorithm/any.hpp
./boost/proto/detail/any.hpp
./boost/any.hpp
./boost/type_erasure/any.hpp
./boost/hana/any.hpp
./boost/hana/fwd/any.hpp
$ readlink -f boost/any.hpp
/home/bibs/EhEhEhEh-labs/workspace/workspace/reports/lab01/boost_1_69_0/boost/any.hpp
  1. Выведите в консоль все файлы, где упоминается последовательность boost::asio.
$ grep -r "boost::asio" > containsboostasio.txt
V file containsboostasio.txt, toje na gist-e.

containsboostasio.txt

  1. Скомпилирутйе boost. Можно воспользоваться инструкцией или ссылкой.
$ ./bootstrap.sh
Bootstrapping is done. To build, run:

    ./b2
  1. Перенесите все скомпилированные на предыдущем шаге статические библиотеки в директорию ~/boost-libs.
$ mkdir ./boost-libs
$ cp ./stage/lib/*a ./boost-libs/
$ cd boost-libs | ls
libboost_atomic.a     libboost_context.a   libboost_date_time.a  libboost_filesystem.a
libboost_container.a  libboost_contract.a  libboost_fiber.a	 libboost_wave.a
  1. Подсчитайте сколько занимает дискового пространства каждый файл в этой директории.
$ du -h ./*
4.0K	./libboost_atomic.a
148K	./libboost_container.a
20K	./libboost_context.a
336K	./libboost_contract.a
152K	./libboost_date_time.a
232K	./libboost_fiber.a
400K	./libboost_filesystem.a
4.5M	./libboost_wave.a
  1. Найдите топ10 самых "тяжёлых".
$ du -h ./* | sort -hr
4.5M	./libboost_wave.a
400K	./libboost_filesystem.a
336K	./libboost_contract.a
232K	./libboost_fiber.a
152K	./libboost_date_time.a
148K	./libboost_container.a
20K	./libboost_context.a
4.0K	./libboost_atomic.a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment