Я пишу небольшую программу на C ++ на Xcode 5 для развлечения, но я впервые использую Xcode, и я не понимаю, как Xcode обрабатывает пути при открытии файлов, включенных в проект. Я использую фреймворк SDL2_image, и когда я хочу загрузить изображение, которое я включил в проект, я просто делаю это, и он находит изображение в порядке:
IMG_LoadTexture(renderer, "image_name.png");
Однако, похоже, это больше нигде не работает. Я пытаюсь загрузить файл xml с помощью libxml2, но этот код:
xmlDocPtr doc = xmlParseFile("doc_name.xml");
Просто приводит к этому:
I/O warning : failed to load external entity "doc_name.xml"
То же самое происходит, когда я пробую другие способы загрузки файлов. Я не уверен, что это потому, что фреймворк SDL2_Image делает что-то особенное, или потому, что у меня есть другое фундаментальное непонимание того, как все работает. Все файлы должны быть включены одинаково, я просто щелкнул правой кнопкой мыши по проекту и выбрал «Добавить файлы в ...». После компиляции они отображаются в папке «Contents / Resources» приложения. Я видел другие вопросы о stackoverflow о том, как открывать файлы в пакете (который, как я полагаю, является папкой с содержимым?), Но меня смущает, почему мне не нужно было делать ничего, что предлагают эти ответы, чтобы заставить его работать с материалом SDL_Image.
Буду очень признателен за любую помощь с этим. Я исправил все свои проблемы с помощью волшебных настроек сборки из Интернета, которых я не понимаю, поэтому любое объяснение, которое показывает, как я мог понять это для себя, чтобы в следующий раз я мог быть очень признателен.
[ОБНОВЛЕНИЕ] Если я использую путь «Application_Name.app/Contents/Resources/file_name», я могу получить доступ к файлу. Однако я не понимаю, почему я должен делать это со всем, кроме библиотеки SDL2_Image, и я не хочу, чтобы мои пути зависели от имени приложения.