Я портирую через большую, старую систему, которая, как было известно, работает, на 64-битную Linux Ubuntu. Система использует FLTK, обновление до 1.3.2, и я использую NetBeans. Файл содержит базовую универсальную /FL/Fl.H в качестве первой строки. Это включает в себя более новый активатор Unicode /FL/fl_utf8.h. Это включает в себя системный файл <sys/stat.h>
, который затем включает в себя системный файл <bits/stat.h>
, При подключении и -I, включая различные различные каталоги, системные файлы внезапно ломаются во время компиляции с:
In file included from /usr/include/sys/stat.h:107,
/usr/include/bits/stat.h:88: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:89: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:90: error: field ‘st_ctim’ has incomplete type
/usr/include/bits/stat.h:149: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:150: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:151: error: field ‘st_ctim’ has incomplete type
Последний FLTK не работает? Аллергия на 64 бита? Интернет предлагает ошибку в системном заголовочном файле? glibc несовместим? Добавить _GNU_SOURCE? Не USE_MISC? Много блуждающих в блогах, что здесь происходит?
Краткий ответ: кто-то где-то создал случайный файл под названием «time.hMsgstr «. Ваш путь включения включает каталог, в котором он находится. Это приводит к короткому замыканию системы неочевидным способом. Файл даже не должен быть используемый, это может быть случайный тестовый файл, который один из программистов собирает сбоку, а не встроенный. Он просто должен существовать, и быть доступным в вашем большем включенном пути. Этого будет достаточно для вас Не проблема ФЛТК вообще.
Чем дольше ответ: stat.h
был обновлен с на основе __time_t st_atime
и т.д. на основе struct timespec st_atim
и т. д. [обратите внимание, что отсутствует конец] для обработки временных меток с наносекундным разрешением. Но временные характеристики определены в системе time.h
, Если вы включаете случайный time.h где-то в своем пути, это затеняет включение, стирая определение struct timespec.
По-видимому, эта же проблема также является проблемой с FFMpeg v1.0 и / include / libavutil.
Итог: настаивайте, чтобы никто никогда не создавал файл под названием «time.h».
На самом деле есть довольно солидное быстрое решение, которое я использовал, когда у меня была эта проблема в Centos 6.5. Мысль, которой я поделюсь, если кто-нибудь еще наткнется на эту тему. Существует хранилище, созданное и поддерживаемое https://github.com/tony2001 это решает эту проблему с конфликтом файлов time.h.
Следуйте ниже, чтобы исправить это:
git clone https://github.com/tony2001/ffmpeg-php.git
cd ffmpeg-php
phpize
./configure
make && make install
Я понимаю, что этот вопрос старый, но я опубликую свой опыт, так как сейчас я просто изучаю книгу, и это случилось со мной. Я смог решить проблему, перезапустив виртуальную машину, на которой я запускаю диск.
То, что я думаю, случилось для меня, было то, что я управлял виртуальной машиной, устанавливая образ диска к одному из виртуальных дисков моего компьютера. По окончании рабочего дня я сохранял состояние своих виртуальных машин, а затем загружал их и продолжал работать над ним позже. Однако иногда я перезагружал свой физический компьютер, который отключал образ компакт-диска с моего диска, но я не заметил этого, потому что виртуальная машина запускалась без проблем, так как я просто перезагружал состояние сохранения, пока ваша проблема не случилась со мной ,
Повторная установка образа диска и последующий перезапуск виртуальной машины решили проблему для меня, и это может быть для других, кто запускает образ livecd через виртуальную машину. Единственное, что я могу подумать, это могло бы объяснить, что некоторые из программ книги могут испортить некоторые из включений, а перезапуск просто возвращает машину в исходное рабочее состояние.
Если вы запускаете диск физически, это, вероятно, вам не поможет, но перезагрузка компьютера может быть хорошей попыткой. Как примечание, я изначально запускал компакт-диск физически на своем старом ноутбуке, и все программы книги работали нормально. Это было неприятно, поскольку виртуальная машина доставляла мне проблемы, из-за которых у меня изначально не было физического диска.