Это не ответ, но он слишком длинный для комментариев, поэтому есть.
Я помню эту проблему при кросс-компиляции (linux x86_64 до linux armhf), но я не точно не помню, что я сделал. Я знаю, что выполнил более или менее эти шаги:
- Запустите cmake, не собирая ничего, только для настройки вещей.
- При запуске make (я предполагаю, что вы запускаете его вручную), пробег:
VERBOSE=1 make
Скопировать точно выполненную строку, которая не удалась, что-то вроде
g++ -I/.../ -pthread -o file.o -c file.cpp
Введите каталог сборки и выполните эту строку, добавив параметр
-v
, поэтому, если строка была такой же, выполните:
g++ -I/.../ -pthread -o file.o -c file.cpp -v
G CC напечатает, среди прочего, информацию о включаемых каталогах. В моем случае это похоже на это:
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/ZS/deps/include
/home/jd/code/config/.
/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/../../../../include/c++/9.2.0
/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-linux-gnu
/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward
/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/include
/usr/local/include
/opt/ZS/deps/lib/gcc/x86_64-linux-gnu/9.2.0/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
Обратите внимание, что в моем выводе выше (это реальный вывод) есть две записи, начинающиеся с ignoring nonexistent directory
.
Проверьте эти несуществующие каталоги, а также тщательно проверьте, есть ли файл cstddef в любом из тех, которые перечислены как существующие (так, вероятно, после #include <...> search starts here:
).
Надеюсь, что это немного поможет.