VOGONS


Yet another win32 DOSBox SVN compiling thread

Topic actions

Reply 60 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Okay, so I now tried to compile SDL, at first only SDL_main compiled as the other project in the solution was complaining about missing headers from DirectX, so I installed the SDK. SDL compiled nicely (with one or two warnings). I copied the compiled SDL libs and then tried compiling DosBox, still the same. X.X

Reply 61 of 70, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I checked the buildlog you attached.
What kind of linker settings do you have ?
You should NOT have things like "Ignore All default libs"

Water flows down the stream
How to ask questions the smart way!

Reply 62 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member
Qbix wrote:

I checked the buildlog you attached.
What kind of linker settings do you have ?
You should NOT have things like "Ignore All default libs"

Under "Input" I have
Additional Dependencies: opengl32.lib winmm.lib sdlmain.lib sdl.lib mt32emu.lib $(NOINHERIT)
Ignore all Default Libraries: No
Ignore Specific Library: msvcrt.lib
And the rest of the fields are blank. Anything else you might need to know from linker? ^^;

Reply 63 of 70, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

why that ignore ?
I don't think I have anything ignored

Water flows down the stream
How to ask questions the smart way!

Reply 64 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member
Qbix wrote:

why that ignore ?
I don't think I have anything ignored

bloodbat suggested me to ignore that library, after I ignored it, the compile progressed.

Reply 65 of 70, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

compiling should have nothing to do with the linking stage.

Water flows down the stream
How to ask questions the smart way!

Reply 66 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member

Okay, I removed msvcrt.lib from the Ignore list, and although less I still encounter errors:

dosbox.cpp
Generating Code...
d:\downloads\dosbox\src\cpu\core_dyn_x86\risc_x86.h(110) : warning C4731: 'gen_runcode' : frame pointer register 'ebp' modified by inline assembly code
Linking...
dos_keyboard_layout.obj : error LNK2019: unresolved external symbol __imp__GetKeyboardLayoutNameA@4 referenced in function "public: __thiscall DOS_KeyboardLayout::DOS_KeyboardLayout(class Section *)" (??0DOS_KeyboardLayout@@QAE@PAVSection@@@Z)
dos_keyboard_layout.obj : error LNK2019: unresolved external symbol __imp__GetKeyboardLayout@4 referenced in function "public: __thiscall DOS_KeyboardLayout::DOS_KeyboardLayout(class Section *)" (??0DOS_KeyboardLayout@@QAE@PAVSection@@@Z)
cdrom_aspi_win32.obj : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function "bool __cdecl GetRegistryValue(struct HKEY__ * &,char *,char *,unsigned long)" (?GetRegistryValue@@YA_NAAPAUHKEY__@@PAD1K@Z)
cdrom_aspi_win32.obj : error LNK2019: unresolved external symbol __imp__wsprintfA referenced in function "private: void * __thiscall CDROM_Interface_Aspi::OpenIOCTLFile(char,int)" (?OpenIOCTLFile@CDROM_Interface_Aspi@@AAEPAXDH@Z)
cdrom_aspi_win32.obj : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function "private: bool __thiscall CDROM_Interface_Aspi::ScanRegistryFindKey(struct HKEY__ * &)" (?ScanRegistryFindKey@CDROM_Interface_Aspi@@AAE_NAAPAUHKEY__@@@Z)
cdrom_aspi_win32.obj : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function "private: bool __thiscall CDROM_Interface_Aspi::ScanRegistryFindKey(struct HKEY__ * &)" (?ScanRegistryFindKey@CDROM_Interface_Aspi@@AAE_NAAPAUHKEY__@@@Z)
cdrom_aspi_win32.obj : error LNK2019: unresolved external symbol __imp__RegEnumKeyExA@32 referenced in function "private: bool __thiscall CDROM_Interface_Aspi::ScanRegistryFindKey(struct HKEY__ * &)" (?ScanRegistryFindKey@CDROM_Interface_Aspi@@AAE_NAAPAUHKEY__@@@Z)
sdlmain.obj : error LNK2019: unresolved external symbol __imp__SystemParametersInfoA@16 referenced in function "void __cdecl sticky_keys(bool)" (?sticky_keys@@YAX_N@Z)
sdlmain.obj : error LNK2019: unresolved external symbol __imp__GetSystemMetrics@4 referenced in function "void __cdecl GUI_StartUp(class Section *)" (?GUI_StartUp@@YAXPAVSection@@@Z)
cross.obj : error LNK2019: unresolved external symbol __imp__SHGetSpecialFolderPathA@16 referenced in function "void __cdecl W32_ConfDir(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,bool)" (?W32_ConfDir@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
.\Release/dosbox.exe : fatal error LNK1120: 10 unresolved externals
Creating browse information file...

Reply 67 of 70, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

almost there

Not sure why you deleted all libs from the link line,
but you need at least

Shell32.lib

for shGetSpecialFolderPath,
Either restore the normal libs in there, or google all functions that are missing.

Water flows down the stream
How to ask questions the smart way!

Reply 68 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member
Qbix wrote:
almost there […]
Show full quote

almost there

Not sure why you deleted all libs from the link line,
but you need at least

Shell32.lib

for shGetSpecialFolderPath,
Either restore the normal libs in there, or google all functions that are missing.

I removed the $(NOINHERIT) argument in the linker and now it compiled flawlessly, the only problem is that it's still as slow as my MinGW build and ykhwong's build *sigh*

But regardless, thanks for your assistance bloodbath, Qbix, VileRancour and Dominus ^^

Reply 69 of 70, by bloodbat

User metadata
Rank Oldbie
Rank
Oldbie

Try it with VC++ 2010, it optimizes better and now you know how it's done.

Reply 70 of 70, by marooned_on_mars

User metadata
Rank Member
Rank
Member
bloodbat wrote:

Try it with VC++ 2010, it optimizes better and now you know how it's done.

I tried compiling Munt again with VC++2010 and it says that it's missing some libs, I tried looking for the missing reference and it says it should be in one redistributable package, I dowloaded it and installed and still won't work. I tried to run CMake on Munt again and it seems it cannot do anything since there's a part of VC++ that's missing. I give up since this is really too much of a hassle. I'll compile DosBox again when I'll be able to use Linux distros again.
Regardless, thanks bloodbat for your help 😀