Witam,
Mam problem z dołączeniem biblioteki allegro do projektu w Visual C++ 2010 Express.
Zrobiłem wszystko według tej: http://www.easykoder.vot.pl/tutoriale/allegro/lekcja00 instrukcji jednak podczas kompilacji prostego programiku, kompilator wyrzuca błąd, że nie może odnaleźć alleg.lib. Jak to rozwiązać?
Na pewno dobrze wrzuciłeś bibliotekę statyczną (.lib)?
Tak, myślę, że tak. Wrzuciłem tak jak w instrukcji. Jednak jak próbuje wyszukać w tych plikach tej biblioteki alleg.lib to jej tam nie ma, chodzi o tą paczkę, którą trzeba pobrać...
No to cię w ciula zrobili skoro nie ma. Ale dziwne żeby z oryginalnej strony czegoś brakowało, może poszukaj ręcznie w necie alleg.lib
.
Ok problem rozwiązany. Dołączyłem 2 brakujące pliki alleg.lib
oraz alld.lib</code> do katalogu <code>C:\Program Files\Microsoft Visual Studio 10.0\VC\lib
Przy kompilacji wywaliło jeszcze następujący błąd: MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
Aby go zlikwidować należy wejść w Project->Properties->Linker->System i tam w polu Subsystem należy zmienić
Console (/SUBSYSTEM:CONSOLE) na Windows (/SUBSYSTEM:WINDOWS)
W przypadku błędu: MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup
należy wykonać odwrotną zamianę.
Dzięki za pomoc i pozdrawiam
Jednak nie wszystko dobrze działa, po odpaleniu projektu, który wcześniej tworzyłem pod Dev-C++, gdzie wszystko było ok tu pojawia się taki błąd:
MSVCRT.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Jak to naprawić?
Tu
to znaczy gdzie? Coś z nazwą funkcji głównej jest nie tak.
to tu to oznaczać miało aż tu nagle :P
Funkcje główną mam tak zdefiniowaną:
int main(int argc, char *argv[])
{
//blok instrukcji
} END_OF_MAIN()
Czekaj, czekaj, mówiłeś, że tworzyłeś na Dev-C++, a teraz? Na prawdę w kodzie jest END_OF_MAIN()
?
Nom Tworzyłem w Dev-C++ ale mnie wkurzał bo on strasznie muli, w sensie opóźnienia w podpowiedziach są...
No i zobaczyłem, że da radę pod VC pisać w allegro, więc sobie przekopiowałem wszystko.
No tak jest tam to END_OF_MAIN()
No to, pewnie dlatego VS się pluje, bo co to w ogóle jest, wywołanie poza main'em nie zadeklarowanej funkcji, w sumie kompilator sam nie wie co to jest, wywal to.
Bez zmian
Jak kompiluje w trybie Release to wywala takie coś:
1>------ Build started: Project: projekt, Configuration: Release Win32 ------
1>MSVCRT.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
1>D:\STUDIA\SEMESTR 3\Programowanie obiektowe\Projekt\implementacja\projekt\Release\projekt.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
a jak w Debug to takie:
1>------ Build started: Project: projekt, Configuration: Debug Win32 ------
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>D:\STUDIA\SEMESTR 3\Programowanie obiektowe\Projekt\implementacja\projekt\Debug\projekt.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
A to END_OF_MAIN()
to generuje się samo jak tworzysz nowy projekt allegro pod Dev'em.
@sperling miałem zrobione wszystko tak jak w tej 2 instrukcji jest pokazane