Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2013, 09:46   #1
hamster28
Пользователь
 
Регистрация: 14.06.2013
Сообщений: 11
По умолчанию подключение библиотеки

попробовал подключить библиотеку SDL
сначала к своему проекту - не вышло, попробовал к пустому проекту.
делал вроде все, как сказано на сайте
http://lazyfoo.net/SDL_tutorials/les...010e/index.php
скачал библиотеку... сначала вторую, потом все проделал и с 1.2.15
создал пустой проект
установил папки включения в инклюд - include, в лайбрарис - x64
линкер - include - additional dependencies - SDL.lib; SDLmain.lib
установил Subsystem to be Windows
создал main.cpp

Цитата:
#include "include\SDL.h"
int main( int argc, char* args[] )
{
SDL_Init( SDL_INIT_EVERYTHING );
return 0;
}

установил "Runtime Library" в Multi-Threaded DLL
запустил

выдает ошибки
Цитата:
error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
первой ошибкой. для ее решения установил
entry point - main
появляется
Цитата:
error LNK2019: unresolved external symbol _SDL_Init referenced in function _SDL_main
и
Цитата:
error LNK2001: unresolved external symbol _main
если в мейне дописать

Цитата:
#undef main;
то последнего сообщения не будет, но ошибка остается вот эта
Цитата:
error LNK2019: unresolved external symbol _SDL_Init referenced in function _main
что я сделал не так????
hamster28 вне форума Ответить с цитированием
Старый 17.06.2013, 13:15   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от hamster28 Посмотреть сообщение
что я сделал не так????
Выбрали неправильный тип проекта.
main это для консольных приложений, WinMain это для оконных.
Либо создайте проект заново, либо измените тип проекта в настройках линкера либо напишите нужную функцию.
waleri вне форума Ответить с цитированием
Старый 21.06.2013, 11:49   #3
hamster28
Пользователь
 
Регистрация: 14.06.2013
Сообщений: 11
По умолчанию

и так попробовал, и так
ничего не выходит
если есть минутка - посмотрите
http://rusfolder.com/36942193
или скиньте свой проект в VC с подключенной библиотекой.
заранее спс
hamster28 вне форума Ответить с цитированием
Старый 21.06.2013, 12:11   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Выбрали неправильный тип проекта.
main это для консольных приложений, WinMain это для оконных.
Либо создайте проект заново, либо измените тип проекта в настройках линкера либо напишите нужную функцию.
SDL пофигу, консольное или оконное там приложение
_Bers вне форума Ответить с цитированием
Старый 21.06.2013, 12:26   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от hamster28 Посмотреть сообщение
и так попробовал, и так
ничего не выходит
если есть минутка - посмотрите
http://rusfolder.com/36942193
или скиньте свой проект в VC с подключенной библиотекой.
заранее спс
Код:
error LNK2019: unresolved external symbol _SDL_Init referenced in function _SDL_main
Ты не подключил к проекту lib библиотеки.
---------------


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

В настройках проекта нужно указать компилю, где искать либы.
в 2008 студии это:
проект --> свойства --> c/c++ --> additional include directories
И там перечисляешь через точку с запятой все папки, где у тебя могут лежать библиотеки.

Для более старших версий студий, есть специальная утилитка по настройке всех её путей. Её легко загуглилить, ибо проблема настройки путей для 2010-2012 студий настолько задолбала уже людей, что люди плюнули и запилили эту утилитку.

Теперь студия найдет библиотеки, но ей нужно указать, какие именно библиотеки нужны конкретному проекту:
проект --> свойства --> линкер --> input --> additional dependecies
Прописываешь имена библиотек, которые нужны. У меня:
sdl.lib
sdlmain.lib

То есть, полный путь указывать не надо. Пути ты уже указал. Только имена.

Далее, в коробке с сдл идет файл SDL.dll. Его закидываем в папку проекта.

Далее, в исходниках пишем:

Код:
//указываем компилятору, что main - точка входа в программу
#pragma comment (linker, "/ENTRY:mainCRTStartup")

#include "SDL.h"    

//без этой фигулинки не взлетает
#undef main

int main( int argc, char* args[])
{
    SDL_Init( SDL_INIT_EVERYTHING ); 
    return 0;
}
/зы: Сам долбался с запуском сдл. Жутко не юзабельно. И справку по проблеме хрен найдешь. В интернетах народ в основном только жаловолся на эту проблему.

В итоге, пришлось муторно осиливать, пересиливая желание выбросить этот хлам на свалку.

Плохая библиотека. Пример того, как не нужно делать.

Последний раз редактировалось _Bers; 21.06.2013 в 12:29.
_Bers вне форума Ответить с цитированием
Старый 21.06.2013, 13:51   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
SDL пофигу, консольное или оконное там приложение
error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

Где здесь SDL?
waleri вне форума Ответить с цитированием
Старый 21.06.2013, 19:15   #7
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

Где здесь SDL?
Выше - рабочий код с указанием как именно следует подключать библиотеки SDL, и заводить main()

Какие то проблемы?
_Bers вне форума Ответить с цитированием
Старый 03.07.2013, 15:21   #8
hamster28
Пользователь
 
Регистрация: 14.06.2013
Сообщений: 11
По умолчанию

Забросив сначала подключение этой либы, решил вернуться к нерешенной проблеме. попробовал, как выше описано - фиг.
попробовал, как показано в видео - http://www.youtube.com/watch?v=2ulKz8gfLDk

постоянно выдает вот эту ошибку
Цитата:
error LNK2019: unresolved external symbol _SDL_Init referenced in function _main
попробовал в vc12 - то же самое.
Цитата:
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _SDL_SetVideoMode в функции _main
и
Цитата:
error LNK2019: ссылка на неразрешенный внешний символ _SDL_Init в функции _main
т.е. вроде бы функции он знает, их объявления видит, предлагает подсказки по ним, по функциям библиотеки SDL, а при запуске выдает ошибку линкера.
никак разобратьс не могу
hamster28 вне форума Ответить с цитированием
Старый 03.07.2013, 16:04   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

lib файл то подключен?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.07.2013, 16:58   #10
hamster28
Пользователь
 
Регистрация: 14.06.2013
Сообщений: 11
По умолчанию

линкер - include - additional dependencies - SDL.lib; SDLmain.lib
вот так вот я попытался подключить lib файлы, предварительно указав папки, где либы лежат.
может как-то по другому нужно lib подключать?
hamster28 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение дин. библиотеки xakkkkker Общие вопросы Delphi 4 01.02.2012 11:13
Подключение библиотеки ZLOJ PHP 7 03.01.2012 20:57
Подключение статической библиотеки к C# К_І C# (си шарп) 2 11.11.2011 15:41
Подключение библиотеки из исходников Selestis Общие вопросы C/C++ 3 27.10.2011 18:08
Подключение библиотеки string skgwazap Visual C++ 7 26.11.2010 09:29