Проблема Cmake при использовании make с несколькими потоками

#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 не может работать правильно, потому что иногда она не может открыть разделяемые библиотеки, которые ей необходимо использовать.