Emulator Issues #1636
Build fails in Visual Studio 2010
What steps will reproduce the problem?
1. Fresh SVN update.
2. Open Dolphin.sln with Visual Studio 2010 Beta 2
3. It converts it, try to compile Release x64
What is the expected output? What do you see instead?
Compilation - lots of warnings and a few errors. Build rule problems for
the most part.
What version of the product are you using? On what operating system?
r4525 (probably affects most versions), trying to compile with Visual
Studio 2010 Ultimate Beta 2, Windows 7 x64
Please provide any additional information below.
Yes, I know, it's a beta, blah blah. If that's all your going to so, please
don't, as there are people out there like me who like playing with new
stuffs, and since it's free and legal (and it's quite nice actually, though
buggy), it can't hurt to put it out there.
Esp. since some people may not know it exists or is out, and really, most
programming geeks I know are jumping at the idea of playing with it.
I don't expect this to be fixed instantly, or even be a "real" issue, but
there has to be a couple of the devs out there would like to have a look,
and hopefully one with a greater background on this project's build rules
might even fix it.
You can download the ISO directly:
#2 Updated by tonyb452 over 10 years ago
I was able to compile dolphin (at least both releases in x64, haven't tried other
targets yet) on Visual Studio 2010 by making the following changes:
1. Change int main in projects DSPTool and UnitTests to int _tmain (which will let
Visual Studio 20xx decide whether to make it int main or int wmain depending on
whether unicode support is enabled). I think this would also be fixed by going into
the project properties for each and making sure Multi-Byte Character Set is selected
in the project properties page under Character Set, but I haven't tested this
method, only seen it reported with success.
2. The DirectX SDK isn't necessarily added to your build paths. To make sure it
is, click the Property Manager (in the left docked window), choose any one of the
projects, and pick whichever target you're aiming for (you'll only have to do this
once, once for 32-bit code, and once for 64-bit code). For 32-bit code, you'll want
to open the properties page for Microsoft.Cpp.Win32.user. The third item down is
VC++ directories, you need to add $(DXSDK_DIR)Utilities\bin\x86 to Executable
Directories, $(DXSDK_DIR)Include to Include Directories, and $(DXSDK_DIR)Lib\x86 to
Library Directories. For 64-bit code, you'll choose Microsoft.Cpp.X64.user. Then
you need to add $(DXSDK_DIR)Utilities\bin\x64 to Executable Directories, $(DXSDK_DIR)
Include to Include Directories, and $(DXSDK_DIR)Lib\x64 to Library Directories.
One issue I still haven't figured out, although dolphin builds correctly, is that
trying to Clean Solution fails with Invalid character in Microsoft.CppClean.target,
which might just be a Visual Studio 2010 problem, or a problem with the converter,
but it does not prevent a successful build. One more issue you might be running
into is a problem with the new parallel build system. I guess it's not perfect
yet,because I just had a build fail because another one was in progress, so it kind
of stepped on its own toes there, and so sometimes just hitting Build Solution again
makes things work.
#3 Updated by tonyb452 over 10 years ago
I forgot to mention one other annoyance about compiling Dolphin under Visual Studio
2010 (and possibly other versions). Core is set as the default project, but Core is
a .lib, so if you try to Start debugging, it tells you you can't run Core.lib. I
fixed this by going to the properties page for the Core project and changing the
Command to the path and filename of the exe, giving Command Arguments as /d and
setting the Working Directory to the path where I found the exe. I used absolute
paths because I'm not yet familiar enough with Dolphin code, but this hack might be
useful for anyone else trying to debug issues with Dolphin and compiling under
Visual Studio 2010.
#4 Updated by tonyb452 over 10 years ago
And one final note: debug mode targets won't work immediately because project wxAui
includes a few ....\lib\vc_lib\msw for debug targets bot other times
uses ....\lib\vc_lib\mswd, but all other projects only use (and
expect) ....\lib\vc_lib\msw, but ....\lib\vc_lib\mswd doesn't exist in revision
4525 and even making it doesn't help, as other projects expect ....\lib\vc_lib\msw
even for debug targets. Replacing ....\lib\vc_lib\mswd with ....\lib\vc_lib\msw
for debug targets allows them to compile. Also, as I mentioned in my previous
comment, starting debugging doesn't work, the Command should be
$(ProjectDir)......\Binary\$(Platform)\DolphinIL.exe and Working Directory should
#5 Updated by Anonymous over 10 years ago
"Core is set as the default project, but Core is
a .lib, so if you try to Start debugging, it tells you you can't run Core.lib. "
This is because Visual Studio keeps this setting as a per-user setting. (At least in
VS up to 2008)
"2. The DirectX SDK isn't necessarily added to your build paths...."
Yeah...that's a user issue, not dolphin's problem.
So the problems are:
1. Multi-Byte Character Set/Unicode should be set explicitly in the vcproj
2. wxAui needs some paths to be cleaned up
#9 Updated by murodese about 10 years ago
Using the stable release of VS2010 Ultimate (with the directx sdk installed), I had
to do the following to get each configuration to build;
Property Manager -> Open any Microsoft.Cpp.Win32.user file -> Under VC++ Directories,
Do the same for a Microsoft.Cpp.x64.user file, swapping the x86s for x64.
Dolphin -> Set as Startup
Dolphin -> References -> Add "Lua" and "DebuggerUICommon"
Plugin_VideoDX9 & Plugin_VideoOGL -> References -> Add "SOIL"
To compile debug-fast x64, change Debugger -> C/C++ -> Optimization -> Optimization
to Disabled (/Od).
Doing the above allowed me to build every individual configuration
(debug/debugfast/release, x86/x64) without any issues, as well as hook the VS
debugger to both debug and debugfast Dolphin (with some path-config-tweaking).