У меня возникли проблемы с использованием SDL-фреймворка в моем проекте xcode, мой основной (все, что есть в проекте на данный момент) в настоящее время выглядит так:
#include <SDL/SDL.h>
#include <iostream>
int main(int argc, const char * argv[])
{
// insert code here...
std::cout << "Hello, World!\n";
return 0;
}
И ошибка, которую я получаю при сборке:
Неопределенные символы для архитектуры x86_64:
«_main», ссылка с:
начать в crt1.10.6.o
(возможно, вы имели в виду: __Z8SDL_mainiPPKc)
ld: символы не найдены для архитектуры x86_64
clang: error: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v для просмотра вызова)
Это не дает мне ошибку о том, что фреймворк не найден. и я искал Stackoverflow для этой проблемы, и я нашел одного человека, который имел свою структуру в неправильном месте в их ОС. Но я перепробовал все места (/ библиотека / рамки && / ~ Имя пользователя ~ / библиотека / рамки && / system / library / frameworks) и все равно не повезло.
Дополнительная информация:
Однако после некоторых поисков в Интернете я заметил, что официальный сайт http://www.libsdl.org/download-1.2.php
Не имеет OSX-версию библиотеки разработки. Хотя во многих руководствах по использованию SDL в OSX говорится, что это необходимо.
Также я добавляю свою библиотеку через сам Xcode, а не через drag’ndrop. XCode, кажется, распознает это.
Буду очень признателен, если кто-нибудь может помочь, схожу с ума от этой ошибки.
ОБНОВИТЬ:
Все еще не повезло, я следовал за каждым шагом, обеспеченным решениями здесь ниже. возможно, этот скриншот поможет.
Функция main () исправлена, но не помогла. Я попытался изменить путь к файлам заголовка, я потерял на этом. Кто-нибудь, возможно, есть какие-либо альтернативы для создания этого в XCode?
UPDATE2:
Предложение сработало, однако теперь оно дает мне это предупреждение, которое не позволит мне запустить приложение.
Исправлена! Я удалил путь в настройках сборки. Странно, как я до сих пор не знаю, что пошло не так, в любом случае. Большое спасибо за помощь! сделал мой день!
Я вижу три возможных проблемы. Первая проблема заключается в том, как вы включаете SDL.h в свой код. Вы должны включить SDL.h со следующим кодом:
#include "SDL.h"
Вторая возможная проблема — вы не добавили файлы SDLMain.h и SDLMain.m в ваш проект. Эти файлы необходимы для компиляции кода SDL в Mac OS X. Файлы находятся в папке devel-lite на образе диска SDL.
Третья возможная проблема заключается в том, что ваш проект не связан с платформой Cocoa. Версия SDL для Mac использует Cocoa, поэтому вам нужна платформа Cocoa в вашем проекте.
Следующая статья проведет вас через настройку проекта Xcode 4 для SDL:
ОБНОВИТЬ
Я заметил возможную проблему в том, как вы определили функцию main (). У вас есть пробел между char и * и еще один пробел между * и argv, что может быть причиной ошибки. Функция main () в моем коде SDL определяется следующим образом:
int main(int argc, char *argv[])
Других решений пока нет …