2014-02-11 7 views
2

У меня есть проект git repo в eclipse, который я документировал с использованием doxygen (v1.8.4). Если я запустил латекс, сделаю новый клон проекта, он отлично работает, и PDF сделан. Однако, если я затем запустить Doxy сборку, которая завершает OK, затем попытка запустить латекс макияж, он не дляdoxygen latex make failed для ошибки входного кодирования

! Package inputenc Error: Keyboard character used is undefined 
(inputenc)    in inputencoding `utf8'. 

See the inputenc package documentation for explanation. 
Type H <return> for immediate help. 
... 

Я пытался переключать кодировку Doxyfile, установив DOXYFILE_ENCODING в ISO-8859-1 с никаких изменений в результате ... Как я могу это исправить? Благодарю.

EDIT: Я использовал символы, отличные от UTF-8, насколько я знаю в своих файлах, файл, на который ссылается до того, как ошибка очень короткая и определенно не содержит в ней не-UTF-8 символов. Я даже попробовал очистить выходной лоток из латекса и построить с нуля без везения ...

EDIT: Иреализировано, что только для сборки doxy появляется для правильной работы. Он не показывает никаких ошибок, но должен, например, запустить DOT и построить около 10 графиков. Консольный выход говорит Запуск точки, но он не говорит, что генерирующий граф (n/x), как и должен, когда он фактически делает графики ...

+0

Есть ли причина для использования doxygen 1.8.4? Вы пытались с 1.8.6? Doxygen не запускает точку, когда новые графики не создаются или график не изменяется. – albert

+0

@albert, 1.8.4 был только в последний раз, когда я обновлялся, пытался сохранить обновления инструмента до минимального среднего проекта. Считаете ли вы, что эта проблема может быть решена с помощью изменений 1.8.6? – Toby

ответ

3

Короткий ответ: Итак, медленным процессом устранения я нашел что это было вызвано одним апострофом в файле, который, казалось, уже построен и сделан без ошибок!

Длинный ответ: во-первых, я использовал свойства проекта, чтобы перевернуть кодировку с Cp1252 по умолчанию на UTF-8. Затем я начал удалять файлы один за другим до восстановления и переделывания после каждого удаления, пока make не сработал успешно. Я повторно добавил все файлы, но удалил содержимое в последнем удаленном файле и протестировал make - чтобы подтвердить, что это был этот файл, и только этот файл вызвал эту проблему. марка прошла нормально. Поэтому я вложил содержимое обратно в пустой файл и начал удалять меньшие и меньшие разделы файла, снова перестраивая и переделывая каждый раз, пока я не остался с хорошим make без апострофа и плохого с ним ... Я просто перепечатал апостроф (так как это заставило бы его быть символом UTF-8) и успеха! Такая раздражающая ошибка!

0

Чувак, вы сделали это с трудом. Почему бы вам не использовать python, чтобы сделать для вас работу:

f = open(fn,"rb") 
data = f.read() 
f.close() 
for i in range(len(data)): 
    ch = data[i] 
    if(ch > 0x7F): # non ASCII character 
     print("char: %c, idx: %d, file: %s"%(ch,i,fn)) 
     str2 = str(data[i-30:i+30])#.decode("utf-8") 
     print("txt: %s" % (str2)) 
+0

Любая информация о том, что делают эти строки кода, для тех из нас, кто не знает python? – Toby