Page 1 of 1

Compiling with windows Dev C++

Posted: Sun May 28, 2006 1:59 am
by Waistless
I wanted to get 2.1.x bad right, so i decided to go to the effort of getting a cvs fetcher, and a compiler, and getting the libs, i did all that, but behold i got these linker errors just as it was compiling bzflag.exe

Code: Select all

../Dev-C++/playing.o(.text+0x20998):playing.cxx: undefined reference to `AutoHunt::update()'
../Dev-C++/RadarRenderer.o(.text+0x763):RadarRenderer.cxx: undefined reference to `AutoHunt::getChevronCount(int)'

../Dev-C++/RadarRenderer.o(.text+0x797):RadarRenderer.cxx: undefined reference to `AutoHunt::getBlinkPeriod(int)'
../Dev-C++/RadarRenderer.o(.text+0x7a5):RadarRenderer.cxx: undefined reference to `AutoHunt::getOuterBlinkThreshold(int)'
../Dev-C++/RadarRenderer.o(.text+0x810):RadarRenderer.cxx: undefined reference to `AutoHunt::getChevronInnerAlpha(int)'
../Dev-C++/RadarRenderer.o(.text+0x81e):RadarRenderer.cxx: undefined reference to `AutoHunt::getChevronOuterAlpha(int)'

../Dev-C++/RadarRenderer.o(.text+0x86e):RadarRenderer.cxx: undefined reference to `AutoHunt::getChevronSpace(int)'
../Dev-C++/RadarRenderer.o(.text+0x8d2):RadarRenderer.cxx: undefined reference to `AutoHunt::getChevronDelta(int)'
../Dev-C++/RadarRenderer.o(.text+0x2a93):RadarRenderer.cxx: undefined reference to `AutoHunt::getBlinkPeriod(int)'
../Dev-C++/RadarRenderer.o(.text+0x2aa7):RadarRenderer.cxx: undefined reference to `AutoHunt::getInnerBlinkThreshold(int)'
../Dev-C++/motd.o(.text+0xb1c):motd.cxx: undefined reference to `NewVersionMenu::NewVersionMenu(std::string, std::string, std::string)'
../Dev-C++/ScoreboardRenderer.o(.text+0x492e):ScoreboardRenderer.cxx: undefined reference to `AutoHunt::getColorString(int)'
collect2: ld returned 1 exit status

make.exe: *** [../src/bzflag/bzflag.exe] Error 1

Execution terminated
According to the instructions, linker errors like that happen with libcurl or libssl isn't properly installed, BUT IT IS, and my compiler isn't outdated, it's recent. can someone please help.

EDIT: Also, when disabling "Use fast but imperfect dependency generation" i get this error

Code: Select all

Executing  make...
make.exe -f "C:\Program Files\bzflag\Dev-C++\Makefile.win" all
make.exe: *** No rule to make target `xx', needed by `../Dev-C++/ObstacleSceneNodeGenerator.o'.  Stop.

Execution terminated

Posted: Sun May 28, 2006 6:19 am
by JeffM
the devC++ projects in the development version (CVS HEAD) are not kept up to date( they are only maintained by one person). You'll have to find and add the missing files. In that case it looks like your missing the autohunt files.

if you want a free compiler I highly recomend Visual C++ 2005 Express edition. it is free and uses the same visual studio projects the main windows developers use.

but do note, the development version is in development, it may not work on all systems as we work on it. It is also not compatable with existing 2.0.x servers.

Posted: Mon May 29, 2006 6:35 am
by Waistless
drat, if only i knew that earlier :(

I know that 2.1.x is it's own protocol, i just want to try it out and see what the new laser fully looks like ;)

anyway i decided to scrap dev c++ and download visual c++ 2005 express edition, i'd just like to know if i need to install the option extras; Microsoft MSDN 2005 express edition and/or Microsoft SQL server edition 2003

Posted: Mon May 29, 2006 6:59 am
by JeffM
no, you do not need the MSDN, or the MS SQL stuff.

you do need these other items;

the current windows SDK
the current Direct X SDK
lib curl for MSVC

all those have to be installed, and set up before you can build.

Posted: Mon May 29, 2006 7:14 am
by Waistless
k thx for the quick reply, but what do i need directX sdk for? i thought bzflag was built with OpenGL (just wondering, it's a hefty download..)

argh, i hate this, after moving file after file from directory to directory getting everything to work, i get these linker errors :x :x :x :x :x :x :x :x

Code: Select all

Linking...
bzflag.obj : error LNK2019: unresolved external symbol __imp__GetUserNameA@8 referenced in function "int __cdecl myMain(int,char * *)" (?myMain@@YAHHPAPAD@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__RegisterClassExA@4 referenced in function "public: __thiscall WinDisplay::Rep::Rep(char const *)" (??0Rep@WinDisplay@@QAE@PBD@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetStockObject@4 referenced in function "public: __thiscall WinDisplay::Rep::Rep(char const *)" (??0Rep@WinDisplay@@QAE@PBD@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__LoadCursorA@8 referenced in function "public: __thiscall WinDisplay::Rep::Rep(char const *)" (??0Rep@WinDisplay@@QAE@PBD@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__LoadIconA@8 referenced in function "public: __thiscall WinDisplay::Rep::Rep(char const *)" (??0Rep@WinDisplay@@QAE@PBD@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__DefWindowProcA@16 referenced in function "private: static long __stdcall WinDisplay::Rep::windowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?windowProc@Rep@WinDisplay@@CGJPAUHWND__@@IIJ@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__PostMessageA@16 referenced in function "private: static long __stdcall WinDisplay::Rep::windowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?windowProc@Rep@WinDisplay@@CGJPAUHWND__@@IIJ@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__ValidateRect@8 referenced in function "private: static long __stdcall WinDisplay::Rep::windowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?windowProc@Rep@WinDisplay@@CGJPAUHWND__@@IIJ@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__ReleaseDC@8 referenced in function "public: __thiscall WinDisplay::WinDisplay(char const *,char const *)" (??0WinDisplay@@QAE@PBD0@Z)
platform.lib(WinVisual.obj) : error LNK2001: unresolved external symbol __imp__ReleaseDC@8
platform.lib(WinWindow.obj) : error LNK2001: unresolved external symbol __imp__ReleaseDC@8
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetDeviceCaps@8 referenced in function "public: __thiscall WinDisplay::WinDisplay(char const *,char const *)" (??0WinDisplay@@QAE@PBD0@Z)
platform.lib(WinWindow.obj) : error LNK2001: unresolved external symbol __imp__GetDeviceCaps@8
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetDC@4 referenced in function "public: __thiscall WinDisplay::WinDisplay(char const *,char const *)" (??0WinDisplay@@QAE@PBD0@Z)
platform.lib(WinVisual.obj) : error LNK2001: unresolved external symbol __imp__GetDC@4
platform.lib(WinWindow.obj) : error LNK2001: unresolved external symbol __imp__GetDC@4
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetDesktopWindow@0 referenced in function "public: __thiscall WinDisplay::WinDisplay(char const *,char const *)" (??0WinDisplay@@QAE@PBD0@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__PeekMessageA@20 referenced in function "public: virtual bool __thiscall WinDisplay::isEventPending(void)const " (?isEventPending@WinDisplay@@UBE_NXZ)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4 referenced in function "private: bool __thiscall WinDisplay::windowsEventToBZFEvent(struct tagMSG &,class BzfEvent &)const " (?windowsEventToBZFEvent@WinDisplay@@ABE_NAAUtagMSG@@AAVBzfEvent@@@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function "private: bool __thiscall WinDisplay::windowsEventToBZFEvent(struct tagMSG &,class BzfEvent &)const " (?windowsEventToBZFEvent@WinDisplay@@ABE_NAAUtagMSG@@AAVBzfEvent@@@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetMessageA@16 referenced in function "public: virtual bool __thiscall WinDisplay::getEvent(class BzfEvent &)const " (?getEvent@WinDisplay@@UBE_NAAVBzfEvent@@@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__GetKeyState@4 referenced in function "public: virtual void __thiscall WinDisplay::getModState(bool &,bool &,bool &)" (?getModState@WinDisplay@@UAEXAA_N00@Z)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__ChangeDisplaySettingsA@8 referenced in function "public: bool __thiscall WinDisplay::setDefaultResolution(void)" (?setDefaultResolution@WinDisplay@@QAE_NXZ)
platform.lib(WinDisplay.obj) : error LNK2019: unresolved external symbol __imp__EnumDisplaySettingsA@12 referenced in function "private: class BzfDisplay::ResInfo * * __thiscall WinDisplay::getVideoFormats(int &,int &)" (?getVideoFormats@WinDisplay@@AAEPAPAVResInfo@BzfDisplay@@AAH0@Z)
platform.lib(WinVisual.obj) : error LNK2019: unresolved external symbol __imp__DestroyWindow@4 referenced in function "public: virtual bool __thiscall WinVisual::build(void)" (?build@WinVisual@@UAE_NXZ)
platform.lib(WinWindow.obj) : error LNK2001: unresolved external symbol __imp__DestroyWindow@4
platform.lib(WinVisual.obj) : error LNK2019: unresolved external symbol __imp__ChoosePixelFormat@8 referenced in function "public: virtual bool __thiscall WinVisual::build(void)" (?build@WinVisual@@UAE_NXZ)
platform.lib(WinVisual.obj) : error LNK2019: unresolved external symbol __imp__CreateWindowExA@48 referenced in function "public: virtual bool __thiscall WinVisual::build(void)" (?build@WinVisual@@UAE_NXZ)
platform.lib(WinWindow.obj) : error LNK2001: unresolved external symbol __imp__CreateWindowExA@48
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetMapMode@8 referenced in function "public: __thiscall WinWindow::WinWindow(class WinDisplay const *,class WinVisual *)" (??0WinWindow@@QAE@PBVWinDisplay@@PAVWinVisual@@@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__RealizePalette@4 referenced in function "public: __thiscall WinWindow::WinWindow(class WinDisplay const *,class WinVisual *)" (??0WinWindow@@QAE@PBVWinDisplay@@PAVWinVisual@@@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SelectPalette@12 referenced in function "public: __thiscall WinWindow::WinWindow(class WinDisplay const *,class WinVisual *)" (??0WinWindow@@QAE@PBVWinDisplay@@PAVWinVisual@@@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__DeleteObject@4 referenced in function "public: virtual __thiscall WinWindow::~WinWindow(void)" (??1WinWindow@@UAE@XZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__ShowWindow@8 referenced in function "public: virtual void __thiscall WinWindow::showWindow(bool)" (?showWindow@WinWindow@@UAEX_N@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__GetWindowRect@8 referenced in function "public: virtual void __thiscall WinWindow::getPosition(int &,int &)" (?getPosition@WinWindow@@UAEXAAH0@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__GetClientRect@8 referenced in function "public: virtual void __thiscall WinWindow::getSize(int &,int &)const " (?getSize@WinWindow@@UBEXAAH0@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetWindowTextA@8 referenced in function "public: virtual void __thiscall WinWindow::setTitle(char const *)" (?setTitle@WinWindow@@UAEXPBD@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__MoveWindow@24 referenced in function "public: virtual void __thiscall WinWindow::setPosition(int,int)" (?setPosition@WinWindow@@UAEXHH@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetWindowLongA@12 referenced in function "public: virtual void __thiscall WinWindow::setFullscreen(void)" (?setFullscreen@WinWindow@@UAEXXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__GetWindowLongA@8 referenced in function "public: virtual void __thiscall WinWindow::setFullscreen(void)" (?setFullscreen@WinWindow@@UAEXXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetCursorPos@8 referenced in function "public: virtual void __thiscall WinWindow::warpMouse(int,int)" (?warpMouse@WinWindow@@UAEXHH@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__ScreenToClient@8 referenced in function "public: virtual void __thiscall WinWindow::getMouse(int &,int &)const " (?getMouse@WinWindow@@UBEXAAH0@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__GetCursorPos@4 referenced in function "public: virtual void __thiscall WinWindow::getMouse(int &,int &)const " (?getMouse@WinWindow@@UBEXAAH0@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SwapBuffers@4 referenced in function "public: virtual void __thiscall WinWindow::swapBuffers(void)" (?swapBuffers@WinWindow@@UAEXXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__DescribePixelFormat@16 referenced in function "private: void __thiscall WinWindow::createChild(void)" (?createChild@WinWindow@@AAEXXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetPixelFormat@12 referenced in function "private: void __thiscall WinWindow::createChild(void)" (?createChild@WinWindow@@AAEXXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__GetDeviceGammaRamp@8 referenced in function "private: void __thiscall WinWindow::getGammaRamps(unsigned short *)" (?getGammaRamps@WinWindow@@AAEXPAG@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetDeviceGammaRamp@8 referenced in function "private: void __thiscall WinWindow::setGammaRamps(unsigned short const *)" (?setGammaRamps@WinWindow@@AAEXPBG@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetWindowPos@28 referenced in function "public: bool __thiscall WinWindow::activate(void)" (?activate@WinWindow@@QAE_NXZ)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__SetPaletteEntries@16 referenced in function "private: void __thiscall WinWindow::makeColormap(struct tagPIXELFORMATDESCRIPTOR const &)" (?makeColormap@WinWindow@@AAEXABUtagPIXELFORMATDESCRIPTOR@@@Z)
platform.lib(WinWindow.obj) : error LNK2019: unresolved external symbol __imp__CreatePalette@4 referenced in function "private: void __thiscall WinWindow::makeColormap(struct tagPIXELFORMATDESCRIPTOR const &)" (?makeColormap@WinWindow@@AAEXABUtagPIXELFORMATDESCRIPTOR@@@Z)
common.lib(ErrorHandler.obj) : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function "void __cdecl printFatalError(char const *,...)" (?printFatalError@@YAXPBDZZ)
game.lib(DirectoryNames.obj) : error LNK2019: unresolved external symbol __imp__SHGetMalloc@4 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getConfigDirName(char const *)" (?getConfigDirName@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z)
game.lib(DirectoryNames.obj) : error LNK2019: unresolved external symbol __imp__SHGetPathFromIDListA@8 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getConfigDirName(char const *)" (?getConfigDirName@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z)
game.lib(DirectoryNames.obj) : error LNK2019: unresolved external symbol __imp__SHGetSpecialFolderLocation@12 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getConfigDirName(char const *)" (?getConfigDirName@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z)
ares.lib(ares_init.obj) : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function _init_by_resolv_conf
ares.lib(ares_gethostbyaddr.obj) : error LNK2001: unresolved external symbol __imp__RegQueryValueExA@24
ares.lib(ares_gethostbyname.obj) : error LNK2001: unresolved external symbol __imp__RegQueryValueExA@24
ares.lib(ares_init.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function _init_by_resolv_conf
ares.lib(ares_gethostbyaddr.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
ares.lib(ares_gethostbyname.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
ares.lib(ares_init.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function _init_by_resolv_conf
ares.lib(ares_gethostbyaddr.obj) : error LNK2001: unresolved external symbol __imp__RegOpenKeyExA@20
ares.lib(ares_gethostbyname.obj) : error LNK2001: unresolved external symbol __imp__RegOpenKeyExA@20
ares.lib(ares_init.obj) : error LNK2019: unresolved external symbol __imp__RegEnumKeyExA@32 referenced in function _get_res_interfaces_nt
..\..\src\bzflag\debug\bzflag.exe : fatal error LNK1120: 52 unresolved externals
what am i doing wrong?

Posted: Mon May 29, 2006 4:31 pm
by JeffM
we use open GL for rendering, and direct X for fullscreen setup, sound, and input. you need it.

you also need the windows platform SDK, that is why you get those errors.

read the windows readme, it has info on all the libs you need to build in VC8

Posted: Mon May 29, 2006 4:51 pm
by Tropican8
JeffM2501 wrote:we use open GL for rendering, and direct X for fullscreen setup, sound, and input. you need it.
Well not to confuse you waistless but SDL can be used instead of DirectX. DirectX offers better joystick support I believe though.

Posted: Mon May 29, 2006 5:20 pm
by JeffM
the MSVC projects are not set up to use SDL, but yes there is code in BZFlag to use SDL ( the other platforms use it ).

SDL just calls direct X anyway :) and yes, SDL does not have the same level of joystick support.

Posted: Tue May 30, 2006 5:14 am
by Waistless
ah, windows platform sdk, yes i have that installed, i'm now probably gonna have to move those lib files into the vc++ lib directory, thanks.

Edit: argh, this is ridiculous, i've moved libcurl libs and include to every single vc++ related folder it isn't funny, same with the SDKs, it just isn't picking them up and it's still getting those errors.

Posted: Thu Jun 01, 2006 3:09 am
by Lan
Waistless,

The problem with the Dev-C++ files has been fixed. A few files were missing. Dev-C++ is a great IDE and I am upset to see you scrap it so soon, so I recommend giving it another try with the updated files. I am the maintainer of the Dev-C++ files and if you encounter any future errors with Dev-C++, PM me ASAP--I'll fix them. As you may know, CVS HEAD might have a slight delay of a few hours, but if so, after that you will be able to access the latest files.

PS: Dev-C++ uses SDL by default :)

Posted: Thu Jun 01, 2006 11:23 am
by Waistless
resolved. thanks LAN, i now have a working copy of 2.1.7 :D , thanks a bunch, the graphics on 2.1.x look awesome 8)

btw, i had a few troubles which i fixed, one was the exe couldn't find lib files, which i fixed by moving them into the src/bzflag directory. and it couldn't find the data files, which i also fixed by moving the data into the src/bzflag directory, just FYI.

Posted: Thu Jun 01, 2006 3:26 pm
by JeffM
to run, you move the bzflag.exe to the root level of the source.

windows bzflag is not designed to run from the /src folder.

Posted: Mon Jul 31, 2006 7:53 am
by sudershan
Waistless
Hi there,
This is the proceedure you need to follow to run BZFlag in Dev-C++.

1. Place the .a files in your "/lib/" directory of Dev-C++ (or MinGW32 dir), and the headers in
"/include/".

2. For libcURL, place the folder named "/curl/", containing .h files, into the "/include/" of Dev-C++, like stated above.

3. Follow same instructions as for SDL for libcURL's .a files.

4. Also, make sure you put all included dynamic libraries from SDL and libcURL (for example, "SDL.dll" on Windows)
somewhere in your PATH environment variable (on Windows), such as "c:\WINDOWS\".

bye

Posted: Mon Aug 07, 2006 6:28 am
by Waistless
I said RESOLVED. read all the posts first, i figured out what to do a while ago.

Btw, I might as well post another problem here while i'm at it. I managed to get Visual C++ Express edition working (i figured it out, i had to add more platform SDK dependencies ;) ), so i'm compiling bzflag with that now (sorry lan, but it's just easier and more up to date usually). Now when I compile with the SDKs, BZFlag runs in debug mode, despite no shortcut to use that, does anyone know why it does that? This didn't happen though when I used Dev-C++ which used SDL.

Also, building with SDKs doesn't seem to be that performance optimizied, basically when i move tank, there's some jittery frame rate problem, either that or it's those peice of crap ATI OpenGL drivers. Didn't happen with SDL though.

Posted: Mon Aug 07, 2006 6:40 am
by JeffM
debug builds are NOT optimised.

in visual C++ there is a toolbar to set your target build, set it to release instead of debug.