#ubuntu #makefile #cmake
#ubuntu #makefile #cmake
Вопрос:
У меня есть проект CMake. Когда я запускаю
make -j all
или
make -j 2
затем я получаю такие ошибки, как
/usr/bin/cmake/usr/bin/cmake: : error while loading shared libraries: libasn1.so.8: error while loading shared librariescannot open shared object file: Operation not permitted
: libunistring.so.2: cannot open shared object file: Operation not permitted
src/sco/node/CMakeFiles/rtspreader.dir/build.make:62: recipe for target 'src/sco/node/CMakeFiles/rtspreader.dir/RtspReader.cpp.o' failed
или
In file included from /home/sstoenescu/Work/legobox/src/sco/node/decision/NonScanScoreCalculator.cpp:2:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c /7.3.0/iostream:39:
/usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c /7.3.0/ostream:38:10: fatal error: 'ios' file not found
Однако, когда я просто запускаю
make
без каких-либо потоков он работает нормально.
Каждый раз, когда я запускаю make -j all, я получаю разные ошибки, но в основном они относятся к этим двум типам.
Вы знаете, что может быть не так? Проект слишком большой, чтобы публиковать какой-либо код или какой-либо соответствующий CMakeLists.txt содержание. Пожалуйста, скажите мне, нужна ли вам дополнительная информация, потому что я не уверен, как сформулировать этот вопрос.
Кроме того, это происходит и с другими проектами, поэтому я почти уверен, что что-то не так с моей системой, а не с моими проектами.
Спасибо!
Комментарии:
1. На какой версии и платформе CMake вы работаете?
2. cmake 3.10.2, я использую clang-5.0 в качестве компилятора, платформа Ubuntu 18 (если это то, что вы спрашиваете)
3. Я бы попробовал обновить cmake до последней версии и посмотреть, что произойдет. При запуске
make
он будет использоватьсяcmake
для выполнения некоторых действий. Я бы предположил, что если вы запуститеmake -j
, то он может попытаться запустить несколько одновременных экземпляровcmake
. Кажется, что первая ошибкаcmake
не может работать правильно, потому что иногда она не может открыть разделяемые библиотеки, которые ей необходимо использовать.