Я был после этого урока о том, как создать библиотеку stati c, и автор определяет функцию (для библиотеки) в lib_mylib.c
как:
#include <stdio.h> //Although I use <iostream>
void fun(void)
{
printf("fun() called from a static library");
}
Он идет дальше и просто компилирует это как:
gcc -c lib_mylib.c -o lib_mylib.o
Обратите внимание, что не определено main()
, которое будет точкой входа по умолчанию для программ, но он ничего не упоминает об этом, и мне кажется, что это логично потому что библиотеки - это не то, что мы запускаем, а то, что мы включаем для запуска наших программ, и, следовательно, наш исходный код должен иметь функцию main()
.
Но minGW g++ compiler says this:
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../libmingw32.a(main.o):(.text.startup+0xc0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
и в соответствии с этим вопросом Я не определяю основную, а ошибка действительно кажется go прочь, как только я определю функцию main (). Может кто-нибудь объяснить мне, что происходит под капотом, и устранить эту путаницу.
PS: Было бы очень полезно, если бы вы упомянули какие-либо ресурсы для такого обучения. Заранее спасибо.