Compile MySQL Server & CPP Connector from Source in MSVC2015 - c++

I want to use MySQL C++ Connector in my Visual C++ 2015 project. I tried getting the built connector, but it was built with MSVC2010 and seems to be incompatible. I have tried literally everything: every download (binary distribution and sources), every install/extract path, every command in the Command Line, three MSVC editions (2015, 2013, 2012), I cannot get the C++ Connector to work. It's diving me crazy!!!
This is what I've tried:
Building MySQL server and MySQL C++ connector from source
Having MySQL Community Server 5.6 installed and building MySQL C++ connector from source
Via Visual Studio GUI (with cmake -G "Visual Studio 14 2015")
Via NMake with Visual Studio Command Line
Having both MySQL Community Server 5.6 and MySQL C++ Connector installed from binaries.
All these methods lead to errors at some point, there are hundreds of errors at compilation. So what we (me and probably many other people need) is a tutorial-like answer on how to build/install the server and how to build the connector to work in MSVC 2015 with Boost.
Thank you very much for the time you will take to answer this!

I managed to compile the source for Connector/C a day ago with an older ,VS2013 x64, version of Visual Studio, and CMake 4.3.1 ...
Just cd to the source code folder in cmd.exe and do a cmake -G "Visual Studio 12 2013 Win64" (if you need a 64-bit library)
It seems, the new changes in Visual Studio 2015 are breaking the C connector source code, I hope that MySQL team will fix this in a future release.
I think you can use Connector/C in your project, it won't make a large difference.

Related

CMake and multiple Visual Studio installations using the same compiler version

Scenario
A colleague set up a system a while back. They installed Visual Studio 15 Comminity Edition, merely to test the build process.
At some later point, another colleague was assigned to use that machine. Unbeknownst to them, there was Visual Studio 15 still installed on this machine, but since we have commercial licenses they installed Visual Studio 15 Professional in addition to the alrready installed Community Edition.
Behavior
It is of important note, that the Community Edition installation had the MFC toolset installed, while the Professional Edition installation had not.
Afterwards, the second colleague used our automated procedure to call CMake to first generate project files for Visual Studio, then used the standard command to execute the build pipeline:
cmake -G "Visual Studio 15 Win64" .
This resulted in compilation errors, because the Professional Edition did not have the MFC toolset available and thus the build pipeline failed. Yet within the IDE compilation was successful. After a short while was discovered, that opening "Visual Studio" via Windows start menu resulted in opening the Community Edition rather than the Professional Edition. Since the MFC toolset was then availale, IDE compilation was successful.
Question
Is the solution to this problem as obvious as it seems or does CMake have some way to determine which compiler to use?
Currently I have the following assumptions and would like to validate or refute them:
Each of the Visual Studio versions came with their own compiler for which the respective installers are able to enable/disable additional toolsets.
These two Visual Studio versions do not share the same comiler. (That they do not share toolsets does seem obvious)
CMake has no additional settings to declare which of the compilers of these distinct Visual Studio installations is to be used to execute the build pipeline.
The reason CMake utilized the Professional Edition compiler to execute the build pipeline is merely because the Professional version was installed second, likely overriding a path (registry entry?) CMake uses to find the compiler.
Is this assessment correct? Did something else happen here?

How to build C++ project in Visual Studio 2015 and Visual Studio 2002 at one time

I need to build my C++ projects in two environments:
Visual Studio 2015 (VS2015) installed on Windows 10 x64
Visual Studio 2002 (VS2002) installed on Windows XP
Now every time I need to trigger to build my projects twice on 2 PC and this way is not sufficient for me.
I do some research before and someone suggest to install multiple compiler in one PC, but the problem is that VS2002 is too old to be installed on Windows 10 x64.
I am looking for any method or software tool that I can trigger the build once then I can build my projects on both VS2015 and VS2002 (e.g. if I can install both VS2015 and VS2002 in one PC, I can write a simple batch file to build my project in both compiler).
EDIT:
This answer is outdated because of clarification that the software is installed on two physically different machines.
If you have both VS .NET 2002 and VS2015 installed then you already have two compilers installed and they will be installed in two different places. You then should just be able to write a batch file to call each version of cl.exe (making sure the paths are absolute) and compile/link/build each project.

TFS 2018 build fails: cannot open include file 'afxres.h'

We are testing a new new TFS 2018 SP1 server.
I was previously building a solution (4.5) which contains two unmanaged C++ projects originally written against the 2012 toolset.
Building that solution as-is on the new server worked fine. However, we have decided to retarget to 4.7.1 for our next release.
After making all the changes in the projects including targeting the 4.7.1 framework and the 2017 toolset (141), these projects fail to build with the error in the title.
I know this has to do with the C++ MFC/ATL redist.
The build server does not have VS 2017 installed and I do not want to install it unless absolutely necessary.
I did install the VS 2017 C++ redists x86 and x64 but it did not correct this.
Can anyone help me on that?
You need to at least install Build Tools for Visual Studio 2017 on your build server.
Build Tools for Visual Studio 2017
These Build Tools allow you to build native and managed MSBuild-based
applications without requiring the Visual Studio IDE. There are
options to install the Visual C++ compilers and libraries, MFC, ATL,
and C++/CLI support, and .NET and .NET Core support.
If that still not work, I'm afraid that you have to install the VS 2017 on the build server. (Note that do not miss the feature Microsoft Foundation Classes for C++ .)
UPDATE:
Please double check if you missed the Microsoft.VisualStudio.Workload.VCTools workload on the build server. See Visual C++ build tools for details.
If missed , just try using below command to install it:
vs_buildtools.exe --add Microsoft.VisualStudio.Workload.VCTools

Qt Creator Compiler Config Issue visual studio 2017

I have a problem very similar to
Qt Creator Compiler Config Issue
I have a code in one computer that run with qt 5.4.2msvc2013. In this computer everything works fine, I have these packages installed for the kit:
Build & run kits
but now I am trying to run the same program in a new computer and I can not get my projects to 'Build and Run'.
I tried to install visual studio 2017 but it didn't work. I think the problem is that I don't know what do I have to install in the visual studio package to run something with Qt 5.4.2msvc2013 64bit2
Here is what I installed of visual studio 2017 in the computer that doesn't work
Visual Studio 2017
thank you for any help!
To compile VS2013/Qt5 project under VS2017 you need to install full VS2013 together with VS2017. I tried MS Build Tools but that's not sufficient because does not include unmanadged C++ compiler (cl.exe). Also, you need proper version of Qt itself and Qt VS Tools (aka Qt VS Addin). At the moment beta with VS2017 support is available.

Any problems with having Code::Blocks and MS Visual Studio on same machine

I have installed Code::Blocks on my (Windows) machine. It is working fine.
However there are some open source libraries that i would like to use. For this i will have to build the library on my machine. However the source code is available in the form of a MS Visual Studio solution file.
I've tried to use the 'Import Project' feature of Code::Blocks but got errors with that. I am now thinking of installing MS Visual Studio express edition to see if can build the library using it. I do want to keep my install of Code::Blocks.
I wanted to ask if there are any problems having these two IDEs (Code::Blocks & MS Visual Studio Express Edition) on the same machine? I know they use different default compilers.