Having trouble compiling MUSHclient 5.06 with VS 2017

Posted by Darmier on Wed 07 Mar 2018 08:43 AM — 5 posts, 24,846 views.

#0
1.download file from https://github.com/nickgammon/mushclient/archive/master.zip
2.unpack this .zip file
3.open MUSHclient_2015.sln in VS2017
4.build .
5.I found so many .obj files in windebug folder.
6.run mushclient.exe, and I was told there was no msvcr80.dll
7.I searched the file in my computer, and found there are so many msvcr80.dll files.
so my questions are:
1.what is the correct version of msvcr80.dll should I use?
2.should I ignore the .obj files?
3.how can I get a package like a install file?
Australia Forum Administrator #1
Darmier said:

5.I found so many .obj files in windebug folder.


That is normal. There is one .obj file for every .cpp file. They are linked together to produce a .exe.

Have you followed the instructions here:

http://www.gammon.com.au/forum/?id=13695

Quote:

1.what is the correct version of msvcr80.dll should I use?


I don't know why it depends on that file, maybe Fiendish does. I compile with an earlier version of Visual Studio normally, and the instructions I gave above worked for me.

Maybe tell the compiler to produce a stand-alone version and not one that requires DLLs. I think that is an option. In my version you select "Use MFC in a Static Library".

Quote:

2.should I ignore the .obj files?


Yes.

Quote:

3.how can I get a package like a install file?


The install file is done by using an installer.

The installer files I used are here:

https://github.com/nickgammon/mushclient/tree/master/install

Plus, it pulls in files like Lua files from the lua directory, and so on.

The simplest thing would be to unpack a normal distribution (that is, install it) and then just replace the MUSHclient.exe file and leave all the others alone.

You can get MUSHclient 5.06 pre-built for you as described here:

http://www.gammon.com.au/forum/?id=13903

You only need to compile it yourself if you want to change the source.
USA Global Moderator #2
The project file specifies the 140_xp platform toolset (I think necessary for making an executable compatible back to Windows XP) which I know for certain was included with VS 2015 (which is why the AppVeyor builds work) but might be an optional install in 2017. So maybe, upon not finding the toolset specified in the project file, it reverted to a different toolset and unset the various toggles necessary to statically link MSVCRT.

So I guess either find the installation setting for the XP platform toolset in the 2017 installer or find it standalone online somewhere or decide to build non-XP-compatible executables and re-set the necessary static linking toggles.
Amended on Wed 07 Mar 2018 11:35 PM by Fiendish
USA Global Moderator #3
But, as Nick suggested, if you aren't planning to make your own changes to the code, just use the latest_commit builds that we've already set up to automatically compile whenever Nick pushes commits to GitHub.
Amended on Wed 07 Mar 2018 11:32 PM by Fiendish
#4
THANK you for the useful posts.
I think I had already solved this problem yesterday.
1.install 5.05
2.rename MUSHclient.exe to MUSHclient505.exe
3.copy MUSHclient.exe(5.06) to 505 folder.
4.so I can use both version
THANK you again!