Как исправить проблему с порядком поиска путей в gcc (ошибка ввода / вывода)? - PullRequest
0 голосов
/ 19 сентября 2019

Одна из наших систем Ubuntu 16.04 (gcc 5.4.0) не может выполнить компиляцию, которая ранее была успешной.Ошибка:

$ g++ -c -std=c++14 -Wall -pedantic -m64 -march=native -I../Kernel -I/net/simdata/Hudson_OpenSourceLibs/Boost/ -fpic -O3 
../StarLibs/StdStars/ArithmeticCoding.cpp -o _gnuRelease/ArithmeticCoding.o
cc1plus: fatal error:
/net/simdata/Hudson_OpenSourceLibs/Boost/stdc-predef.h: Input/output error 
compilation terminated.

Если я исключаю -I / net / simdata ... (который является подключенным диском), компиляция завершится без ошибок.

Для случая ошибки:порядок поиска:

ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/5"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 ../Kernel
 /net/simdata/Hudson_OpenSourceLibs/Boost/
 /usr/include/c++/5
 /usr/include/x86_64-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.

(показывается добавлением -v к команде gcc).

Соответствующий файл не находится на подключенном диске, но найден (как и ожидалось)at:

$ ls /usr/include/stdc-predef.h
/usr/include/stdc-predef.h

Кажется, что монтирование работает нормально:

$ ls /net/simdata/Hudson_OpenSourceLibs/Boost/rel-1.69.0/boost/
accumulators     dll.hpp   make_unique.hpp  random.hpp
align    dynamic_bitset   math    range
etc.

Я не понимаю, почему gcc сообщает о сбое ввода-вывода для смонтированного диска и не можетнайти файл включения в /usr/include.

Может кто-нибудь помочь, пожалуйста?

...