MySQL++

Changes To FAQ
Login

Changes To FAQ

Changes to "FAQ" between 2017-07-04 23:49:01 and 2017-07-05 00:05:27

84
85
86
87
88
89
90
91

92
93

94
95

96
97

98
99
100
101
102


103
104
105
106

107


108

109


110
111
112
113
114
115
116
117
118


119

120
121
122
123


124

125
126

127
128
129
130
131
132
133
84
85
86
87
88
89
90

91
92

93
94

95
96

97
98




99
100
101
102
103
104
105

106
107
108
109

110
111
112
113
114
115
116
117
118
119
120
121
122

123
124
125
126
127
128
129

130
131

132
133
134
135
136
137
138
139







-
+

-
+

-
+

-
+

-
-
-
-
+
+




+
-
+
+

+
-
+
+









+
+
-
+




+
+
-
+

-
+







The last version of MySQL++ that works with GCC 2.95.*x* is 1.7.9. It may be less painful to port the current version back to GCC 2.95 than to live with the limitations and bugs of this older version. The main thing breaking this backwards compatibility are the steps forward we’ve taken for Standard C++ compliance. If you work around or revert these, it should work on GCC 2.95 again.

If you’re stuck on anything older than GCC 2.95, we recommend that you use the MySQL C API instead of trying to arm-twist MySQL++ into building under it.


## <a name="vstudio"></a>Will it build under Visual C++?

Yes, it ships with project files for Visual C++ 2005 and 2008.
Yes. See [the `README-Visual-C++.txt` file](/doc/trunk/README-Visual-C++.txt).

MySQL++ also works fine with Visual C++ 2010 and newer with a project file conversion. This may require minor manual adjustments. For example, when VC++ 2013 converts the VS2008 project files, it changes the debug build output directory from `debug` to `debug\x64` but fails to update the linker settings for the executables.
MySQL++ ships with project files for Visual C++ 2005 and 2008. The latter can be converted using Visual C++ 2010 or later, but may require some manual adjustment. For example, when Visual C++ 2013 converts the VS2008 project files, it changes the debug build output directory from `debug` to `debug\x64` but fails to update the linker settings for the executables.

MySQL++ still mostly works with Visual C++ 2003. The main exception is the [Specialized SQL Structures](doc/html/userman/ssqls.html) feature, which doesn’t work at all any more. It appears to be difficult to fix, because the symptom is that the compiler crashes when you try to build even the most trivial SSQLS code. There are [several possible ways](doc/html/userman/ssqls.html#ssqls-vc2003) to work around this limitation.
We’d like to ship newer project files, but the [tool that generates them](http://bakefile.org/) can’t do that yet.

If you must use Visual C++ 2002 (a.k.a. 7.0) or older, you can try the [ancient 1.7.1 version](/home/#oldver) of MySQL++. This is a third-party contribution which is [known to have bugs](http://lists.mysql.com/plusplus/1069). You might be better off using [Connector/C](http://dev.mysql.com/downloads/connector/c/) instead.
If you're still on an older version of Visual C++ than 2005, we strongly urge you to upgrade. Those old versions are seriously deficient in terms of Standard C++ support, even at the rather modest level required by MySQL++.

The library’s primary maintainer only uses MySQL++ seriously on Linux, macOS and FreeBSD systems, and let his MSDN membership lapse years ago. Consequently, he only tests MySQL++ occasionally under the current version of [Visual C++
Community](https://www.visualstudio.com/vs/community/). Consequently, we’re highly reliant on testing and patches from the user base for this platform.

If you’re not using a recent version of Visual C++, you should really consider upgrading as the compliance of the compiler has improved greatly. The [Community edition](https://www.visualstudio.com/vs/community/) now does pretty much everything the pre-2015 Professional editions used to, so you may no longer have a valid excuse for not upgrading.
Under Satya Nadella, Microsoft has apparently finally given up on trying to arm-twist developers into buying premium tools to support their platform, evidenced by the fact that [Visual Studio
Community](https://www.visualstudio.com/vs/community/) now contains all the features you used to have to pay to get in Visual C++ Professional. This Community edition is perfectly suitable for use in building MySQL++ and programs linked to it. Indeed, this is the only version the MySQL++ maintainer tests the library against regularly now.


## <a name="osx"><a name="xcode"></a></a>Will it build on Mac OS X/macOS?

Yes. See [the `README-Mac-OS-X.txt` file](/doc/trunk/README-Mac-OS-X.txt).
Yes, it builds just fine, both from within the Xcode environment and at the command line. We currently test only on the current and/or prior releases of the OS. The included Xcode project files should work with Xcode 2+, which implies that it may still build on systems as old as OS X 10.4. In the past, we successfully tested command line builds on a 10.3 box.

You can build it on the command line using the typical Unix build methods (see [README-Unix.txt](/doc/trunk/README-Unix.txt)) or from within Xcode using the included Xcode project files.

Command line builds are tested more often than Xcode builds. We've successfully built it on every major release of Mac OS X going back to 10.3, and still occasionally test it on the latest release of macOS this way.
Command line builds are still preferred to Xcode, as there is more flexibility to be had here. See `README-Mac-OS-X.txt` in the MySQL++ tarball for details. That file also contains instructions on getting [Connector/C](https://dev.mysql.com/downloads/connector/c/) for macOS, which MySQL++ builds against.

You can build MySQL++ on macOS against either [Connector/C](https://dev.mysql.com/downloads/connector/c/) or against related libraries like the `libmysqlclient` you can get with the [Homebrew](https://brew.sh/) `mariadb` package.


## <a name="cygwin"></a>Will it build under Cygwin?

Yes. See [the `README-Cygwin.txt` file](/doc/trunk/README-Cygwin.txt).


## <a name="mingw"></a>Will it build under MinGW?

Yes. See [the `README-MinGW.txt` file](/doc/trunk/README-MinGW.txt).

Yes. Occasionally a version of MinGW comes out that breaks MySQL++, but there has always been a usable workaround.
Occasionally a version of MinGW comes out that breaks MySQL++, but there has always been a usable workaround.


## <a name="solaris"></a>Will it build under Solaris?

Yes. See [the `README-Solaris.txt` file](/doc/trunk/README-Solaris.txt).

Yes, we have reports of people building it successfully on versions as old as Solaris 8. It gets the most testing with GCC, but we have heard occasional success reports from people using Sun CC. I’ve personally only built it with GCC under OpenSolaris 2008.05 and 2008.11.
We have reports of people building it successfully on versions as old as Solaris 8. It gets the most testing with GCC, but we have heard occasional success reports from people using Sun CC.

Just use the built-in package manager to install MySQL 5.0 or newer and GCC, and you’re set. Beware, in some versions of Solaris, the “mysql” package is MySQL 4.0, which MySQL++ no longer works 100% with out of the box. (See above.) You want the “mysql5” package instead.
Beware that in some versions of Solaris, the “mysql” package is MySQL 4.0, which MySQL++ no longer works 100% with out of the box. (See above.) You want the “mysql5” package instead.


## <a name="borland"></a>Will it build under C++Builder?

It can be made to work, mostly.

The last time it was tried, the [Specialized SQL Structures](doc/html/userman/ssqls.html) feature didn’t work right out of the box due to a compiler limitation. A full discussion of the problem and possible workarounds is in [this mailing list message](http://lists.mysql.com/plusplus/4307).