Ошибка C ++: ожидается ")" в середине изучения SDL - PullRequest
2 голосов
/ 13 апреля 2011

Учитывая поиски, я чувствую, что такого рода вещи задавались много раз.Тем не менее, я не смог найти ответ, поэтому здесь идет речь:

Мои настройки: CodeBlocks, GCC C ++ и SDL
В настоящее время я изучаю учебные пособия LazyFoo по SDL и получаю эту ошибку:

ошибка: ожидается ')' перед ':' токен

из этого кода:

SDL_Surface *load_image (std :: string myfile)

в этом контексте

# include "SDL / SDL.h"

# include

const int SCREEN_WIDTH = 425;
const int SCREEN_HEIGHT = 550;
const int SCREEN_BPP = 32;

SDL_Surface * сообщение = NULL;
SDL_Surface* background = NULL;
SDL_Surface * screen = NULL;

SDL_Surface * load_image (std :: string myfile)
{
больше материала и все остальноепрограмма и т. д.
}

Я чувствую, что это может быть связано с тем, как мои строки или библиотеки SDL настроены в CodeBlocks.Любые предложения или очевидные ссылки на решения, которые я пропустил?

Ответы [ 5 ]

8 голосов
/ 13 апреля 2011

Включите <string> вместо < string.h >, если вы хотите использовать библиотеку строк C ++ STL.

2 голосов
/ 13 апреля 2011

Вы должны использовать string вместо string.h во включении из заголовка.

1 голос
/ 23 марта 2012

Я также следовал учебному пособию по адресу: http://lazyfoo.net/SDL_tutorials/lesson02/index.php и получил сообщение: строка 3, ошибка: строка: такого файла или каталога нет в строке 15, ошибка: ожидается ")" перед ":" токен

Я думаю, что нашел причину проблемы.

При выборе «Файл / Новый / Пустой файл» по умолчанию используется расширение файла Untitled1.c, я изменил расширение файла на .cpp иэто сделало блоки кода распознающими #include, и теперь приложение работает.

0 голосов
/ 06 апреля 2013

Я понял это. У меня была такая же проблема, но у меня все получилось. Вот именно то, что я сделал. Сначала скачали исходные файлы, которые ленивый foo дал в конце урока. Я попробовал их, и я получил ошибку, что SDL.dll не был найден на компьютере. Я переместил файл SDL.dll из папки, в которой должен был работать проект, в папку C: / windows / system32.

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

Определенно, файл должен быть .cpp, поэтому я скажу это.

Держись, есть еще . Теперь я точно подумал, что в моей попытке на уроке 2 не было ошибок, я набрал все в точности так, как видел. Однако это была проблема.

loadedImage = SDL_LoadBMP (filename.c_str ()); <<em> _ _ где он показывает это, с использованием шрифта, который он использует, это больше похоже наloadedImage = SDL_LoadBMP (filename.c_str0);

Просто посмотрите на это ... это так, везде, где он печатает (), будет выглядеть как 0, и вам действительно нужно знать.

Поэтому всем, у кого возникла эта проблема, а также любые другие советы, которые вы получите, я предлагаю проверить ваш код на наличие хитрости (), которую вы, возможно, прочитали и набрали как 0.

0 голосов
/ 13 апреля 2011

Звучит как ошибка C;вы должны компилировать с g++, а не gcc.

...