@faddey0

Linking GTK-3.0 C++ app with MinGW: undefined reference to `WinMain@16'?

Собираю приложение, написанное на С++11, использующее библиотеку GTK-3.0, с помощью утилиты g++. По некоторым причинам нужно сначала собрать *.o-файлы, что делается успешно с помощью команды вроде этой (команда применяется отдельно к каждому сорцу):
g++ -w -std=c++11 -c <src file name> -o .\obj\<src file name>.o <вывод команды 'pkg-config --cflags gtk+-3.0'> -I<path to sources>


После выполнения команды получаю в каталоге .\obj список всех своих объектных файлов. Далее нужно слинковать всё это в исполняемый файл. Делаю так:
g++ <вывод команды 'pkg-config --libs gtk+-3.0'> -o ".\bin\myapp.exe" <list of *.o files>


Вот тут и получается ошибка. Выводит следующее:
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status


Поиск по гуглу дал 100500 похожих вопросов и ни одного решения, которое работало бы у меня.

UPD. main() у меня такой:
int main(int argc, char* argv[]) {
    //...
}

и я не хотел бы его менять на WinMain или что-то еще. До этого я успешно собирал и запускал приложение с помощью MSVS 2012, так что знаю, что как-то решить вопрос можно. ;) только вот как...

UPD 2. Выводы обоих pkg-config:
pkg-config gtk+-3.0 --libs
-LC:/libs/GTK/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

pkg-config --cflags gtk+-3.0
-mms-bitfields -IC:/libs/GTK/include/gtk-3.0 -IC:/libs/GTK/include/cairo -IC:/libs/GTK/include/pango-1.0 -IC:/libs/GTK/include/atk-1.0 -IC:/libs/GTK/include/cairo -IC:/libs/GTK/include/pixman-1 -IC:/libs/GTK/include -IC:/libs/GTK/include/freetype2 -IC:/libs/GTK/include -IC:/libs/GTK/include/libpng15 -IC:/libs/GTK/include/gdk-pixbuf-2.0 -IC:/libs/GTK/include/libpng15 -IC:/libs/GTK/include/glib-2.0 -IC:/libs/GTK/lib/glib-2.0/include
  • Вопрос задан
  • 2906 просмотров
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Покажите, что там понаписал pkg-config.
А main-то у вас есть?
Собираете под оффтопиком (Windows)?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы