> Не думаю что валить надо на компилятор и все же. > Ругается: [Linker error] undefined reference to > `WinMain@16' Это линкер. И надо ему явно подставить точку входа. Там их две: одна юникодная, другая ансишная - поищи сам. Так вот я просто вручную в проекте забивал новую точку входа (юникодную)
> Не думаю что валить надо на компилятор и все же. > Ругается: [Linker error] undefined reference to > `WinMain@16' Это линкер. И надо ему явно подставить точку входа. Там их две: одна юникодная, другая ансишная - поищи сам. Так вот я просто вручную в проекте забивал новую точку входа (юникодную)
Этот же кусок кода VC++ нормально компилит. Без ошибок.
17.02.04 22:53 Автор: deb Статус: Незарегистрированный пользователь
Этот же кусок кода VC++ нормально компилит. Без ошибок.
Думаю что-то в опциях к этому gcc. Вообще Dev-Cpp пользуюсь.
Люблю gcc && не люблю VC++. Однако.....
Так и в gcc он компилится нормально18.02.04 00:08 Автор: amirul <Serge> Статус: The Elderman
> Этот же кусок кода VC++ нормально компилит. Без ошибок. > Думаю что-то в опциях к этому gcc. Вообще Dev-Cpp > пользуюсь. > Люблю gcc && не люблю VC++. Однако..... Материться начинает линкер. Ладно, не хошь сам искать - я уже поискал
Для main, wmain, WinMain и wWinMain соответственно. То бишь они готовят нужные данные (в частности первые две распарсивают командную строку на argc/argv) и вызывают соответсвующую функцию.
Линкер ничего не знает о том, что ты компилил проект со включенным юникодом и более того он не знает, что на самом деле компилировалось консольное, а не Win32 приложение. Не знаю как (скорее всего по умолчанию) у тебя в качестве точки входа используется WinMainCRTStartup, которая в библиотеке есть. Но она вызывает WinMain и этим ставит неразрешимую связь, на которую и ругается линкер.
Как автоматизировать это дело я не знаю. Но лечится заменой точки входа на нужную. В твоем случае это wmainCRTStartup
Я это в курсе.
18.02.04 00:48 Автор: deb Статус: Незарегистрированный пользователь
> Я это в курсе. > Я говорил про опцию /SUBSYSTEM для vc++ линкера. > И про /ENTRY. > Просто я не в курсе gcc(правильнее наверно ld) поддреживает > это или нет. Не помню ключа - читай man. А подсистемы должен поддерживать если вообще работает с PE файлами.