Инструмент командной строки Build для выпуска в Xcode 4, проблема с включением изображений в исполняемый файл сборки - PullRequest
1 голос
/ 13 июля 2011

(Прежде всего, большое спасибо. Stackoverflow был очень полезен для меня в прошлом!)

Хорошо, так что в настоящее время я работаю над инструментом командной строки, написанным на C ++ через Xcode.В прошлом я создавал около десятка таких программ, и у меня не было проблем с их компиляцией внутри или вне XCode.Обычно я просто использую строку g ++ терминала для компиляции вручную, но иногда использовал релиз Xcode.Однако я определенно менее знаком с этим делом с помощью XCode, чем с g ++.

Тем не менее, на этот раз я пытаюсь также построить проект с использованием инфраструктуры SDL.Это моя первая попытка любого графического интерфейса, и это намного сложнее, чем я себе представлял.Я хотел иметь возможность скомпилировать проект и отправить копию исполняемого файла моему профессору, чтобы показать мой прогресс, но я не могу понять, как это сделать.

Я не думаю, что это возможно для сборкичерез g ++, потому что мне нужно также включать платформы SDL и Cocoa.(Это может быть очень неправильно, и если это так, это тоже вариант!) Однако, когда я строю через XCode, я могу успешно открыть его и запустить его через терминал.Итак, мы рядом.Но он не может найти ни одного изображения, которое я использую.SDL определенно работает, и я могу щелкнуть, где изображения должны быть (и это работает), но он просто говорит, что не может открыть "images / blahblah.bmp".

В настоящее время моя папка heirarchy выглядит следующим образом:

Папка проекта содержит все мои .cpp и .h, а также папку под названием "images", которая содержит изображения.Например, во всех моих файлах c ++ я называю их «images / border.bmp».Чтобы заставить это работать, я считаю, что мне нужно было установить мой рабочий каталог в эту папку проекта.Так что это может иметь какое-то отношение к проблеме.Я сделал это через текущую схему, в «рабочем каталоге».

Я подумал, что, возможно, папка с изображениями не была включена в сборку?Поэтому я попытался добавить его к цели.В разделе «Проект», «Цель» (доступ к которому можно получить, щелкнув мой проект в навигаторе), я добавил папку в «Компилировать источники», «Связать двоичные файлы с библиотеками» и «Копировать файлы» без результата.Я пробовал каждый независимо, а также вместе.

Итак, я уверен, что мне не хватает чего-то очень маленького и глупого;Я просто никогда не делал ничего подобного раньше.Надо как-то учиться?Но я не смог найти никого с такой же проблемой в Интернете.(также многие из моих результатов поиска - блоги, но в настоящее время я нахожусь в Китае и не могу получить доступ ко многим из них. ...: - /)

Большое спасибо за любую помощь!Надеюсь, я был достаточно ясен!

Краткое обновление: Интересно, что я отключил пользовательский рабочий каталог и вместо этого поместил изображения в стандартный рабочий каталог (который, я уверен, находится рядом с исполняемым файлом вили папку «Debug» или «Release»), и она все еще не работает.Это все еще работает в Xcode, хотя (который говорит мне, что я думаю, что у меня есть рабочий каталог правильно.)

1 Ответ

0 голосов
/ 13 июля 2011

Версия SDL для Mac устанавливает рабочий каталог в родительский каталог пакета приложения.Вы не создаете пакет приложений Mac, поэтому операционная система не может найти изображения.Краткосрочным исправлением будет открытие файла SDLMain.m и изменение метода setupWorkingDirectory: так, чтобы в качестве рабочего каталога была задана папка вашего проекта.

Долгосрочным и лучшим решением является создание пакета приложения Mac.Самый простой способ сделать это - использовать шаблоны проекта SDC Xcode.Шаблоны проекта SDL не работают в Xcode 4, поэтому вам придется установить Xcode 3.2, создать проект в 3.2 и выполнить всю остальную работу в Xcode 4. Другой способ создания пакета приложений Mac - создать Какао.приложения и добавьте в ваш проект инфраструктуру SDL, SDLMain.h и SDLMain.m.Вам также необходимо удалить некоторые файлы, включая файл xib и файл main.m.

В следующем сообщении в блоге содержатся советы по работе с SDL в Mac OS X:

SDLСоветы для Mac OS X

...