ИСКЛЮЧЕНИЕ OGRE (6: FileNotFoundException): файл «ogre.cfg» не найден

Этот вопрос связан с проектом Ogre3D версии 2.1.

В основном я создаю игру на основе кода из EmptyProject в папке Samples. Я также пробовал код из Tutorial01_Initialization. Я получаю сообщение об ошибке, что ogre.cfg не может быть найден, что отчасти правильно, потому что его действительно не существует, но если он не существует, должно появиться диалоговое окно, чтобы его можно было создать. Я получаю еще одну ошибку в диалоговом окне с сообщением об ошибке (в переводе со шведского, так как это язык моей ОС, извините) «ИСКЛЮЧЕНИЕ ОГРЕ (1813): не удается найти данный тип ресурса в файле образа памяти в ConfigDialog:: отображать".

Я строю на Windows, используя генератор «Visual Studio 15 2017 Win64». Ogre3D статически собран и связан.

Вот текст в Ogre.log:

-- Other stuff with no errors --
05:31:24: *-*-* OGRE Initialising
05:31:24: *-*-* Version 2.1.0unstable ('B')
05:31:24: OGRE EXCEPTION(6:FileNotFoundException): 'ogre.cfg' file not found! in ConfigFile::load at F:\Projects\GameBuild\Libs\Windows\src\Ogre3D\OgreMain\src\OgreConfigFile.cpp (line 88)
05:31:24: WARNING: GraphicsSystem::deinitialize() not called!!!

Мне кажется, я где-то видел, как кто-то говорил, что это может быть проблема, связанная с библиотеками, связанными с проектом, а не с Ogre3D или самими исходниками, но я серьезно сомневаюсь в этом. Я также немного сомневаюсь, что исходный код проекта неверен, поскольку я пробовал два разных проекта из исходников Ogre3D, и оба получают одинаковые сообщения об ошибках, насколько я могу судить, в местах, не связанных с Common. файлы. Есть изменение, здесь есть проблема с cmake, возможно, что-то, чего мне не хватает при использовании генератора Visual Studio?

Если вы хотите посмотреть на мой исходный код, просто скопируйте исходники Common и EmptyProject в какой-нибудь каталог и соберите его, закомментировав любые ссылки на MainEntryPoints::createSystems и MainEntryPoints::destroySystems (предполагается, что вы создадите их сами, но как насколько я могу судить, вы можете просто закомментировать их, чтобы сборка прошла успешно на этом этапе).


person Simon Hyll    schedule 24.11.2017    source источник


Ответы (1)


Используйте отладчик, чтобы узнать, какой путь передается void ConfigFile::loadDirect(const String& filename, const String& separators, bool trimWhitespace), а затем проверьте этот путь, содержит ли он файл конфигурации.

person arrowd    schedule 24.11.2017
comment
Неважно, существует он или нет, так как запасной вариант, если файл не существует в ожидаемом месте, состоит в том, чтобы отобразить диалоговое окно конфигурации и позволить вам создать файл конфигурации в ожидаемом месте. Кроме того, файл Ogre.log создается по тому же пути, что и ogre.cfg, и Ogre.log работает как надо. Проблема в том, что он жалуется на то, что не находит файл, даже если это должно просто вызвать его создание, во время первого запуска игры он не должен существовать. Или я в чем-то ошибаюсь? - person Simon Hyll; 25.11.2017