LINUX.ORG.RU

Хочу сделать unmake

 ,


0

1

Не разобрался в чем была проблема

[ 32%] Linking CXX static library librocksdb.a
[ 32%] Built target rocksdb
make: *** [Makefile:146: all] Error 2

и сделал make install поинструкции https://coral.ise.lehigh.edu/jild13/2016/07/11/hello/ но сделал только хуже, теперь такая ошибка

cmake ..

Add abseil-cpp
-- No CMAKE_CXX_STANDARD set, assuming 11
Add crc32c
Add rocksdb
-- Enabling RTTI in Debug builds only (default)
-- JNI library is disabled
Add ton
-- Found ccache
-- Disabling HTML build for ton_white_paper.tex because the main file is in subdirectory doc
-- Disabling HTML build for ton_vm_description.tex because the main file is in subdirectory doc
-- Disabling HTML build for ton_blockchain_description.tex because the main file is in subdirectory doc
-- Disabling HTML build for fift_basic_description.tex because the main file is in subdirectory doc
-- Disabling HTML build for catchain_consensus_description.tex because the main file is in subdirectory doc
-- Found ZLIB: /usr/include /usr/lib/x86_64-linux-gnu/libz.so
-- Found Readline: /usr/include /usr/lib/x86_64-linux-gnu/libreadline.so
CMake Warning (dev) at /usr/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (mhd) does
  not match the name of the calling package (MHD).  This can lead to problems
  in calling code that expects `find_package` result variables (e.g.,
  `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  CMake/FindMHD.cmake:37 (find_package_handle_standard_args)
  blockchain-explorer/CMakeLists.txt:4 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
CMake Error at rldp2/CMakeLists.txt:54 (target_link_libraries):
  Target "rldp2" links to:

    GSL::gsl

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

make uninstall тут нет, надо лезть в мейк-файлы, но я чайник и не понимаю что там и куда смотреть.

Перемещено hobbit из general



Последнее исправление: xaizek (всего исправлений: 1)

Неустаревающая классика: «Легким движением make install любой дистрибутив превращается в слакварь».

Тут варианта 2:

1) чинить ошибку и делать make install поверх;
2) руками выщемить все устанавливаемые файлы и удалить их.

К слову это как раз тот случай, когда рулят песочницы, контейнеры или простая банальная сборка НЕ ИЗ ПОД РУТА. Ну, то есть когда ты физически не можешь необратимо засрать систему.

Pinkbyte ★★★★★
()

Судя по тому, что у тебя сборка не завершилась, до install в make install дело не дошло, поэтому деинсталлировать просто нечего.

Ошибка, которую ты видишь, это родовая болезнь CMake. Там если неаккуратно писать скрипты, очень легко добиться проблем с реконфигурацией. Другими словами, если ты запускаешь cmake .. в директории, в которой уже до этого запускался cmake .., есть большой шанс наткнуться на странное поведение и ошибки. Исправляется легко — нужно удалить содержимое build-директории, а уже потом в чистой директории запускать cmake ...

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Первая ошибка не относится к сборке, сборка длилась 5 минут и там 2 файла, один это Makefile.am (65 строк) и второй Makefile.in там около 1.6к строк, мне туда страшно лезть + я не понимаю даже близко куда оно записывало данные

Danger271
() автор топика
Ответ на: комментарий от Danger271

Предполагаю, что тут речь не о нескольких разных проектах, а всё-таки об одном.

make install перед непосредственной установкой файлов в систему должен сначала как-то эти файлы получить. Для этого внутри сгенерированного Makefile цель «install» зависит от цели «all». Когда ты запускаешь просто «make», выполняется эквивалент «make all». Поэтому если просто запуск «make» завершился с ошибкой, а строчка «make: *** [Makefile:146: all] Error 2» очень на это намекает, никакие файлы в системные директории не устанавливались, поэтому и удалять нечего.

Первая ошибка не относится к сборке

Возможно, а возможно и да. Без дополнительного контекста сложно что-то ещё понять.

один это Makefile.am (65 строк) и второй Makefile.in там около 1.6к строк, мне туда страшно лезть

Из этих двух файлов исходный — Makefile.am. На его основе генерируется Makefile.in, а основе этого уже генерируется Makefile. Но это файлы, которые в autotools используются. У тебя же CMake?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

CMake да, но это разные проекты. Первый проект это https://github.com/ton-defi-org/ton-binaries второй это https://coral.ise.lehigh.edu/jild13/2016/07/11/hello/ я пытался решить проблемы с первым, и вычитал где-то о проблеме с GSL и решил его поставить, но что-то сбилось

Makefile.am https://pastebin.com/6WMGJkqv Makefile.in https://pastebin.com/wxWx7yeB Это файлы сборки GSL

Danger271
() автор топика
Ответ на: комментарий от Danger271

Чтобы ответить что-то определённое, недостаточно информации. Часть деталей опущена, причём очень похоже, что важных деталей.

Первый проект это https://github.com/ton-defi-org/ton-binaries

В этом репозитории нечего собирать. Там один текстовый файл, в котором указаны ссылки на уже собранные бинарники под разные ОС.

второй это https://coral.ise.lehigh.edu/jild13/2016/07/11/hello/ я пытался решить проблемы с первым, и вычитал где-то о проблеме с GSL и решил его поставить, но что-то сбилось

Если инструкцию не менять, она может сработать в одном из двух вариантов. Первый — ты используешь имя пользователя «yourname». Второй — ты запускал этап установки от рута. В обоих случаях установка будет произведена в /home/yourname/gsl. Сильно вряд ли при сборке первого проекта ты сам того не осознавая объяснил CMake, что GSL нужно искать не там, где он его ожидает найти, а в /home/yourname/gsl. Так что если ты инструкцию по установке GSL не менял, то действия по ней вряд ли могли на что-то повлиять.

Скорее всего, нужно просто почистить директорию сборки и заново запустить CMake.

Это файлы сборки GSL

В эти файлы редко кто кроме разработчиков самих библиотек смотрит. И даже им проще смотреть в сообщения об ошибках во время сборки, а не в детальные инструкции для autotools и make.

Пример. Допустим, есть какой-то софт, который использует GSL. Скрипты конфигурации, скорее всего, проверяют наличие библиотек GSL с помощью .pc файла. Допустим, ты установил GSL, но решил заголовочные файлы удалить. Скрипты конфигурации запустят pkg-config, тот проверит наличие gsl.pc, возьмёт из него пути к бинарникам библиотек и заголовочным файлам, вставит в нужные места в Makefile.in, из которого сделает Makefile. Если ты кому-то покажешь сгенерированные файлы Makefile, они не смогут понять, что что-то не так. Сгенерированные ими Makefile даже могут быть в точности такими же. Но у них софт соберётся, а у тебя нет, потому что ты удалил какой-то там заголовочный файл.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Я делал все по инструкции. Логично, что установка должна была произойти в /home/yourname/gsl, но эта папка пуста. Может мне нужно в make файле второго проекта прописать пути? Что мне нужно почистить?

Danger271
() автор топика
Ответ на: комментарий от Danger271

Может мне нужно в make файле второго проекта прописать пути?

Недостаточно контекста для ответа. Нет логов сборки и установки. Там скорее всего и были ответы.

Что мне нужно почистить?

Директорию, в которую CMake писал файлы.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)