Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при Linking. 
:(
    Опции темы
KPEHDEL
  Дата 24.4.2012, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Здравствуйте форумчани.

Требуется помощь.

Компилирую проект, как только дело дходит до Linking появляется следующая ошибка:
Код

--------------------Configuration: Armagetron - Win32 Debug--------------------
Linking...
LIBCMT.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
..\..\dist\armagetron_debug.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

armagetron_debug.exe - 2 error(s), 0 warning(s)


Подскажите пожалуйста в чём дело.
С нетерпением жду вашего ответа.
PM MAIL WWW ICQ   Вверх
Randajad
Дата 24.4.2012, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



ЧСХ, функции WinMain нет.
Компилятору студийному она нужна всегда, когда приложение не консольное.
PM MAIL   Вверх
KPEHDEL
Дата 24.4.2012, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



/*Случайно стёр текст*/

Это сообщение отредактировал(а) KPEHDEL - 24.4.2012, 19:48
PM MAIL WWW ICQ   Вверх
Randajad
Дата 24.4.2012, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



Компиляй GCC и будет щастье.
Или в раздел для новичков следует обратиться дабы узнать в чем различие WinMain и main и как их нужно применять.
PM MAIL   Вверх
KPEHDEL
Дата 24.4.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



В раздел для новичков обязательно схожу, но не дублировать ведь там тему, правильно?
К сожалению мне надо именно на vs. Предположим я знаю, что функция WinMain вызывается системой как начальная точка входа, для базирующейся на Windows, прикладной программы.

Только вот совершенно не понятно где её требуется объявить в исходных кодах armagetron_src_0.1.4.9.

Добавлено через 4 минуты и 35 секунд
Залил исходники(с прикреплёнными файлами) на всякий, может кто решится посмотреть...
Ссылка
PM MAIL WWW ICQ   Вверх
Randajad
Дата 24.4.2012, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



Аннет, код ужасен и на GCC без правок не соберется.
Это исходники официальные? Что-то беглым осмотром не нашел ни winmain, ни main. Завтра еще посмотрю.
И почему только VC необходимо, если не секрет?
PM MAIL   Вверх
KPEHDEL
Дата 25.4.2012, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Во первых, спасибо, что ответил и посмотрел.
Исходники офицальные(правда качал не с офф сайта там ссыль все ссылки битые. Но если в гугле вбить например armagetron_src_0.1.4.9.tar.gz то найти можно легко) почти самая старая версия(она мне и нужна).

VC не обходима так как сижу под виндой. Ну, а так как в исходниках был проект под VS 6.0 то я и подумал, что под VS было бы удобнее всего.

Хотя если удастся скомпилировать под Bloodshed Dev-C++ или под Code::Blocks виндовую  тоже пойдёт.

Сейчас ещё скачаю исходники последней версии их попробую скомпилить в Code::Blocks, в документации сказано, что последнии версии ей компилят.
О результатах отпишусь. Хотя конечно предпочтительнее была бы старая версия.

Цитата

Завтра еще посмотрю.


Буду благодарен если посмотришь.

Это сообщение отредактировал(а) KPEHDEL - 25.4.2012, 10:27
PM MAIL WWW ICQ   Вверх
Randajad
Дата 25.4.2012, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



А GCC под виндой типа не бывает? smile

PM MAIL   Вверх
KPEHDEL
Дата 25.4.2012, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Эм, ну GCC для Windows это по сути Dev-C++ которую я упомянул выше.
PM MAIL WWW ICQ   Вверх
borisbn
Дата 25.4.2012, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(KPEHDEL @  25.4.2012,  13:57 Найти цитируемый пост)
 GCC для Windows это по сути Dev-C++ которую я упомянул выше. 

да ладно... а мужики-то не знали...

KPEHDEL,  Dev-C++ и Code::Blocks - редакторы текста с элементами IDE, а gcc под windows - это либо сам gcc, запущенный под antiWINEcygwin или специально собранный под windows компилятор gcc (вернее набор компиляторов и виндовых библиотек) - aka MinGW

По сути: этот твой armagetron случаем не библиотека ? Если так, то там и не должно быть ни main, ни WinMain. Такая ф-ция должна быть в твоей программе, которая эту библиотеку использует


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
KPEHDEL
Дата 25.4.2012, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Спасибо, что объяснил. Велика ли разница собрать в Code::Blocks или MinGW?

Код

По сути: этот твой armagetron случаем не библиотека ?


Нет, это не библиотека.

Это сообщение отредактировал(а) KPEHDEL - 25.4.2012, 14:17
PM MAIL WWW ICQ   Вверх
EnergoHokum
Дата 25.4.2012, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: нет
Всего: 6



PM MAIL ICQ   Вверх
Randajad
Дата 25.4.2012, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



Два часа усилий окупились! smile
Пытался сначала собрать то, что выложил афтар, оно потребовало кучу всяких libpng, sdl, sdl_mixer и over9000 других библиотек. Вроде, собрал, но линковаться это чудо не захотело. smile
Потом я начал гуглить. И нашел:

Код

How to compile 0.4 in Windows 7 with Code::Blocks 10.05

Before everything, get Code::Blocks 10.05 with included mingw.
I downloaded and installed codeblocks-10.05mingw-setup.exe from http://www.codeblocks.org/downloads/26

1.
Make a svn checkout from
https://armagetronad.svn.sourceforge.net/svnroot/armagetronad/armagetronad/branches/0.4


2.
Edit ..\armagetronad\win32\python.bat and change line 7 to your installation location of python

3.
Edit ..\armagetronad\src\defs.h and comment out line 122 and 125
The block should look like this:
Code:
//#ifndef HAVE_ISBLANK
// this function does not seem to exist in windows and solaris 2.8
inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }
//#endif


4.
Run ..\armagetronad\win32\update_version.bat

4.
Open ..\armagetronad\win32\code_blocks\ArmagetronAd.workspace in Code::Blocks
I only build the client so I closed the dedicated and master projects (right click -> close project).
Also I set the Build target to win32 release (saves you some time if you dont want to debug)

5.
Build everything in Workspace except "Armagetron Advanced".

6.
Run ..\armagetronad\win32\makedist.bat
Run ..\armagetronad\win32\protobuf.bat

7.
Build "Armagetron Advanced"

8.
You find the build in ..\armagetronad\build\dist\
You can run the .exe from there or generate an installer with the .nsi script.


Вообщем, еще чуть правля их исходники мне удалось собрать это до вроде как работоспособного состояния. smile
Собирается теперь и под gcc 4.8 тоже.

http://acomirei.ru/armagetron.7z
В папке armagetronad\build\dist готовая экзешка.
Для сборки достаточно:
1) Open ..\armagetronad\win32\code_blocks\ArmagetronAd.workspace in Code::Blocks
2) Build "Armagetron Advanced"

Это сообщение отредактировал(а) Randajad - 25.4.2012, 15:38
PM MAIL   Вверх
borisbn
Дата 25.4.2012, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(KPEHDEL @  25.4.2012,  14:13 Найти цитируемый пост)
Велика ли разница собрать в Code::Blocks или MinGW?

Первое - редактор (с элементам IDE). Второе - компилятор. Набери эти два слова в вики и посмотри, велика ли разница.
Code::Blocks, если я не ошибаюсь, может компилировать как M$-овским компилятором, так и MinGW (вполне возможно, что и ещё пару-тройкой). А вот MSVS компилировать при помощи MinGW - нет.


KPEHDEL, кстати, если тебе не хватает репутации, чтобы плюсануть Randajad за проделанную работу, просто скажи.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
KPEHDEL
Дата 25.4.2012, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



EnergoHokum, спасибо прочту обязательно.
Randajad, тебе отдельное огромное спасибо, за проделанную работу.

Цитата

KPEHDEL, кстати, если тебе не хватает репутации, чтобы плюсануть Randajad за проделанную работу, просто скажи. 

Да. "У Вас недостаточно постов, чтобы изменять репутацию пользователей. Необходимо 100 постов."
А плюсануть очень хочется! smile 

Цитата

Code::Blocks, если я не ошибаюсь, может компилировать как M$-овским компилятором

Собственно ты и ответил на мой вопрос.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0811 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.