Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.91
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
#1

Прилинковать SDL к V.S. 2010 - C++

30.07.2013, 22:30. Просмотров 12598. Ответов 47
Метки нет (Все метки)

Доброго всем вечера.
Я знаю, что подобных тем было много, но, справиться с проблемой не могу.
Скачал с оф.сайта все .h, SDL.lib, SDLmain.lib и SDL.dll.
dll поместил в System32, либы и .h собрал в папку.
В свойствах проекта указал к папке путь и выбрал Многопоточный Dll (\WD)
В компоновщике указал обе библиотеки и выбрал \SUBSYSTEM:WINDOWS.

При компиляции простенького проекта:
LINK : fatal error LNK1104: не удается открыть файл "SDL.lib"

Если поместить все файлы в папку проекта и поменять путь в настройках:
MSVCRT.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup
D:\visual studio 2010\Projects\SDL\Урок 1\Debug\Урок 1.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Вот код:
App.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "App.h"
 
App::App() {}
 
int App::Execute() {
    return 0;
}
 
int main(int argc, char* argv[]) {
    App App;
 
    return App.Execute();
}
App.h
C++
1
2
3
4
5
6
7
8
9
10
11
#ifndef _APP_H_
#define _APP_H_
 
#include <SDL.h>
 
class App {
    public:
        App();
        int Execute();
};
#endif
Буду рад любой помощи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2013, 18:37     Прилинковать SDL к V.S. 2010 #16
Цитата Сообщение от Ryabchik Посмотреть сообщение
у вас работает в Студии?
Работает что?

Добавлено через 3 минуты
Ryabchik, там ещё либы под разные платформы, учитывайте это.

Добавлено через 2 минуты
Цитата Сообщение от Ryabchik Посмотреть сообщение
SDL-1.2.15
почему не поновее?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
31.07.2013, 19:45     Прилинковать SDL к V.S. 2010 #17
Цитата Сообщение от alsav22 Посмотреть сообщение
почему не поновее?
Сейчас все статьи именно по этой версии, для версии поновее надо доку читать. Для начала пойдет.
Цитата Сообщение от alsav22 Посмотреть сообщение
но на нажатие не реагирует.
СДЛ переводит вывод в файл stdout

Добавлено через 5 минут
alsav22, вот такой вариант у меня работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <SDL\SDL.h>
#include <cstdlib>
#include <iostream>
#include <Windows.h>
//using namespace std;
 
//int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
int main(int argc, char *argv[])
{
    //Start SDL
    SDL_Init( SDL_INIT_EVERYTHING );
    
    SDL_Event event;
    SDL_Surface *screen = NULL;
    
    if((screen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF))==NULL){
        return 1;
    }
    
    bool running = true;
    
    while( running ) {
        while( SDL_PollEvent( &event ) ) {
            switch (event.type) 
            {
                case SDL_KEYDOWN:
                    printf("The %s key was pressed!\n",
                    SDL_GetKeyName(event.key.keysym.sym));
                break;
            
                case SDL_QUIT:
                    running = false;
            }
        }
        SDL_Flip( screen );
    }
    
    //Quit SDL
    SDL_Quit();
    //system("pause");
    return 0;
}
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2013, 20:42     Прилинковать SDL к V.S. 2010 #18
Это у меня просто не компилируется. Не находит:
SDL_SetVideoMode
SDL_HWSURFACE
SDL_DOUBLEBUF
SDL_Flip
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
31.07.2013, 21:04  [ТС]     Прилинковать SDL к V.S. 2010 #19
alsav22, у меня то же самое
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2013, 21:06     Прилинковать SDL к V.S. 2010 #20
А из 14 поста компилируется?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
31.07.2013, 21:16     Прилинковать SDL к V.S. 2010 #21
Ryabchik,alsav22, значит у вас обоих вторая версия СДЛ
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
31.07.2013, 21:23  [ТС]     Прилинковать SDL к V.S. 2010 #22
Цитата Сообщение от alsav22 Посмотреть сообщение
А из 14 поста компилируется?
Нет.
_SDL_Quit, _SDL_GetKeyName, _SDL_WaitEvent, _SDL_Init - неразрешенные внешние ...
Ну и _WinMain@16 в функции ___tmainCRTStartup, разумеется.
Но последнее уходит заменой на WinMain

Добавлено через 2 минуты
Цитата Сообщение от coloc Посмотреть сообщение
вторая версия СДЛ
Я скачивал с оф сайта http://www.libsdl.org/.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
31.07.2013, 21:24     Прилинковать SDL к V.S. 2010 #23
Цитата Сообщение от Ryabchik Посмотреть сообщение
Я скачивал с оф сайта http://www.libsdl.org/.
Конкретно скажи откуда либу качал? Там есть и 1.2.5 и 2.0 версии. Как я знаю, WinMain требует вторая версия
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
31.07.2013, 21:26  [ТС]     Прилинковать SDL к V.S. 2010 #24
Вот - http://www.libsdl.org/download-1.2.php.
Win32 - Visual C++
Про 2.0 написано - not release version, may be unstable
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
31.07.2013, 21:26     Прилинковать SDL к V.S. 2010 #25
del
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
31.07.2013, 21:29  [ТС]     Прилинковать SDL к V.S. 2010 #26
Цитата Сообщение от coloc Посмотреть сообщение
del
А что взамен?
Uzer5
4 / 4 / 1
Регистрация: 22.09.2012
Сообщений: 11
31.07.2013, 21:43     Прилинковать SDL к V.S. 2010 #27
только сегодня посадил SDL на VS2012.
Просто скопировал всё из папки lib в lib, include в папку include/SDL.
Затем линкуем (Project->Properties->Configuration Properties->Linker->Input добавляем SDLmain.lib; SDL.lib
Прога отлично бегает.
П.С. SDL.dll от minGw не подошёл, пришлось скачивать версию для VS и пришлось /NODEFAULTLIB:library msvcrt.lib прописать.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2013, 21:54     Прилинковать SDL к V.S. 2010 #28
Цитата Сообщение от coloc Посмотреть сообщение
Ryabchik,alsav22, значит у вас обоих вторая версия СДЛ
У меня да, вторая.

Добавлено через 3 минуты
Цитата Сообщение от Uzer5 Посмотреть сообщение
только сегодня посадил SDL
SDL какая? И если не трудно, какой-нибудь рабочий код для демонстрации работы.

Добавлено через 4 минуты
Цитата Сообщение от Ryabchik Посмотреть сообщение
Нет.
_SDL_Quit, _SDL_GetKeyName, _SDL_WaitEvent, _SDL_Init - неразрешенные внешние ...
Ну и _WinMain@16 в функции ___tmainCRTStartup, разумеется.
Но последнее уходит заменой на WinMain
У вас линкер ошибки выдаёт. Ещё раз:
Цитата Сообщение от alsav22 Посмотреть сообщение
Ryabchik, там ещё либы под разные платформы, учитывайте это.
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 161
31.07.2013, 21:57  [ТС]     Прилинковать SDL к V.S. 2010 #29
Цитата Сообщение от alsav22 Посмотреть сообщение
Ryabchik, там ещё либы под разные платформы, учитывайте это.
Ну да, Win32 -> Visual C++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 22:14     Прилинковать SDL к V.S. 2010
Еще ссылки по теме:
C++ инициализация SDL
Оптимизация SDL C++
Документация по SDL C++
C++ Подключение SDL 2.0 MinGW
Подключение SDL.h к проекту C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2013, 22:14     Прилинковать SDL к V.S. 2010 #30
А либы для х86 подключили? У меня такие ошибки появляются, если либы для х64 подключить.
Yandex
Объявления
31.07.2013, 22:14     Прилинковать SDL к V.S. 2010
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru