MySQL Connector/C++: how to build a client on Linux using NetBeans 6.5 (for Dummies)

A few days ago, I have published a tutorial on building a Connector/C++ client application on Windows using Visual Studio. Its time for a Linux How-To. My I-Do-Everything (IDE) choice on Linux is NetBeans 6.5. NetBeans is open-source and free. A version with C and C++ support is lightweight (24MB download) and the code-completion feature has ruled out Katy (kate) for writing Connector/C++ tests.

I am happy with every fast editor that offers syntax highlighting and supports a mouse. NetBeans does both. I do not know how to write Unix Makefiles. NetBeans does. A perfect match for Dummies and Little Idiots to build a C++ client application for MySQL using the MySQL Driver for C++.

Table of Contents



Required software

Please make sure that you have the following software installed:

If you plan to build the driver from source, which is not subject of this tutorial, you will also need the following. Please check MySQL Connector/C++: compiling, using and debugging for hints on building the driver itself.

  • CMake 2.6.2 or newer
    • Some Linux distributions do not ship recent CMake versions. We leave support for old CMake 2.4+ entirely to the community. You may be able to build Connector/C++ with 2.4+ on Unix like systems. Again: no support from us for old software!
  • MySQL Connector/C++ source

The MySQL Connector/C++ is either linked against the MySQL Client Library (AKA libmysql - the C-API) or MySQL Connector/C. The MySQL Client Library is part of the MySQL Server distribution. The MySQL Connector/C is a standalone distribution of the libmysql library. libmysql is the name of the library that the C-API provides. In simple words you can say that MySQL Connector/C has been shipping with very MySQL Server ever since. Jim and Georg have uncaged and refurbished it as a first step for future work. See also the FAQ: MySQL Connector/C; MySQL Native C API; libmysql; libmysqld and the MySQL Connector/C documentation.


mysql-dev packages versus MySQL Connector/C

We did give the MySQL Connector/C a test during the development of the MySQL Connector/C++. The products performed well together. Nevertheless I will not cover Connector/C yet, because few Linux distributions offer packages for products released as Beta a day before this article is written. This article is for dummies. Dummies want to go the lazy way. The lazy way is using the mysql-dev packages that ship with your Linux distribution. Those dev-packages contain the libmysql library that you will need to build a client application.


Installing MySQL Connector/C++ on Linux

Download a binary distribution of the driver suitable for your system. Unpack it in a directory of you choice. Any directory is fine as long as you remember the location for the NetBeans project settings.


nixnutz@ulflinux:~> tar xvzf mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit.tar.gz
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/build_config.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/config.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/connection.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/datatype.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/driver.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/exception.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/metadata.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/parameter_metadata.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/prepared_statement.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/resultset.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/resultset_metadata.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/statement.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/cppconn/warning.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/mysql_connection.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include/mysql_driver.h
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/lib/libmysqlcppconn.so.1
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/lib/libmysqlcppconn.so
mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/lib/libmysqlcppconn-static.a

If you plan to install the MySQL Connector/C++ permanently on you system, or if you want to share it with other users, consider to copy the libraries into /usr/local/lib and the header files into /usr/local/include. Copying files into those directories may require root privileges. Please consult you operating system manual for details. When writing this article, I have successfully tried both installing Connector/C++ in my home directory and in the system directories. The screen shots have been taken with the driver installed in /usr/local/.


ulflinux:/home/nixnutz/mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include # cp -R * /usr/local/include/
ulflinux:/home/nixnutz/mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/include # cd ../lib/
ulflinux:/home/nixnutz/mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/lib # cp -R * /usr/local/lib

We plan to provide RPMs and pkgadd packages in addition to the compressed GNU TAR archives with the GA version.


nixnutz@ulflinux:~> cd mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit
        


An important warning about C++ portability!

Generally speaking C++ libraries are less portable than C libraries. Issues can be caused by name mangling, different Standard Template Library (STL) versions and using different compilers and linkers for linking against libraries than used for building the library. Even a small change in the compiler version can - but does not have to - cause troubles. If you run into any weird error message, which may have to do with incompatibilities, build the MySQL driver for C++ from source.

Due to the huge amount of combinations of Linux distribution, compiler and linker version and STL version we cannot provide binaries for each and every possible configuration. The best we can do is to tell you about the environment and settings we have used to build the binaries. The GA binary builds will include a README file with the settings we used to build the binary. Due to a bug, the README is not contained in the beta binary packages. Below is an example of what you can expect to find in the README file contained in the upcoming GA binary packages:

======================================================================
                CC, CXX, cmake and MySQL versions
======================================================================
C   compiler  : gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-59)
C++ compiler  : g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-59)
CMake version : cmake version 2.6-patch 2
MySQL version : 5.1.31
======================================================================
             Environment, except PATH, HOME and USER
======================================================================
CC=gcc
CFLAGS=-O1 -g
CXX=g++
CXXFLAGS=-O1 -g
LDFLAGS=-static-libgcc
PICOPT=-fPIC

For Linux the settings are pretty much straight forward. Remember that all this is “for your info”. You will need it only if you compile the MySQL Connector/C++ from source. In most cases using a binary package will work just fine.

NOTE: The "generic" binaries have been compiled with GCC 3.2.3 as you can see above. If your system is using a more recent version of GCC, you may run into issues related to "libstdc++.so.5". This is exactly the kind of portability issues I am refering to here and below.


Hello World!

The source distribution of the MySQL Driver for C++ contains several example programs. All the examples will be build automatically when you build the connector from source. If you do not have the source distribution available, no problem. The basics and a famous "Hello World!" can be found in the MySQL Reference Manual.

/*
examples/standalone_example_docs1.cpp
*/
        
/* Standard C++ includes */
#include <stdlib.h>
#include <iostream>
        
/*
  Include directly the different
  headers from cppconn/ and mysql_driver.h + mysql_util.h
  (and mysql_connection.h). This will reduce your build time!
*/
#include "mysql_connection.h"
        
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
        
using namespace std;
        
int main(void)
{
cout << endl;
cout << "Running 'SELECT 'Hello World!' AS _message'..." << endl;
        
try {
  sql::Driver *driver;
  sql::Connection *con;
  sql::Statement *stmt;
  sql::ResultSet *res;
        
  /* Create a connection */
  driver = get_driver_instance();
  con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
  /* Connect to the MySQL test database */
  con->setSchema("test");
        
  stmt = con->createStatement();
  res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
  while (res->next()) {
    cout << "\t... MySQL replies: ";
    /* Access column data by alias or column name */
    cout << res->getString("_message") << endl;
    cout << "\t... MySQL says it again: ";
    /* Access column fata by numeric offset, 1 is the first column */
    cout << res->getString(1) << endl;
  }
  delete res;
  delete stmt;
  delete con;
        
} catch (sql::SQLException &e) {
  cout << "# ERR: SQLException in " << __FILE__;
  cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
  cout << "# ERR: " << e.what();
  cout << " (MySQL error code: " << e.getErrorCode();
  cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}
        
cout << endl;
        
return EXIT_SUCCESS;
}


Creating a NetBeans command line client project

Start NetBeans 6.5. Use the project creation wizard to create a new C/C++ project based on Unix Makefiles. Go for all defaults. Remember the Project Folder. This is where you will find your client application after building. Click on Finish to finish the wizard.

  File->New Project->C/C++->C/C++ Application


  Enter Project Name, go for defaults


The newly created NetBeans 6.5 project does not contain any files but the Unix Makefile. Create a new Main C++ file for the main() function of your "Hello world!" client application. All default wizard settings are a safe choice. The project creation wizard seems to have been improved in NetBeans 6.7. If you already run NetBeans 6.7, you will not need to have to create a main file manually.

  File->New File-> C++ Files->Main C++ File


  Enter file name - use default!


Copy the source code of the "Hello world!" example into the new file. Verify the MySQL connection settings and change them if need be.


NetBeans project settings for dynamic linking

Like with the Windows example, dynamic linking comes first. Switch to the Release configuration and open the Project Properties settings dialog. Make sure that you change the settings for the Release configuration. The select box "Configuration" at the top of the dialog window should read "Release (active)". Little-idiots pitfall: you are setting properties for a certain configuration and try to compile a different configuration which has not the appropriate settings!

Add the include directory from your MySQL Connector/C++ installation to the list of Include Directories.

  File->Project Properties->
  Build->C++ Compiler->
  General->Include Directories


In the next step you need to tell NetBeans the drivers library name and its location. Start with the location.

  File->Project Properties->
  Build->Linker->
  General->Additional Library Directories


Tell NetBeans to link the project against the dynamic library of the driver libmysqlcppconn.so. You will find the file in the installation directory of the MySQL Connector/C++. This is whatever directory you have chosen to unpack the driver package in. Although the filename is libmysqlcppconn.so NetBeans will display the library name as "mysqlcppconn" which is correct. Don’t get dizzy digging through all the wizards used by NetBeans…

 File->Project Properties->
  Build->Linker->
  Libraries->Libraries-> click on "..."



Compiling/Building the client application

Try to build the project using Run->Build Main Project. If you are lucky your have picked the right binaries from the download page and all goes well. If so, you can find the client application at your NetBeans projects location.


nixnutz@ulflinux:~/NetBeansProjects/nb_cpp_dynamic_app/dist/Release/GNU-Linux-x86> ./nb_cpp_dynamic_app
        
Running 'SELECT 'Hello World!' AS _message'...
        ... MySQL replies: Hello World!
        ... MySQL says it again: Hello World!

If the build fails, check the project properties. If the project properties are set in accordance to the How-To, read the build log carefully. For example, you may have picked a 32bit binary package for your 64bit system. If I do so on my system I am getting an error message like below and the build fails. The solution is easy: download the 64bit binary package.


/usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible ../../mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-32bit/lib/libmysqlcppconn.so
when searching for -lmysqlcppconn


Remember: C++ binary portability is limited

Even if the build succeeds there may be issues. Watch out carefully for warnings. For example, I have been able to produce the below warning on my system. It does not break the build because I have a version of "libstdc++.so.5" installed on my system in /usr/lib64/.


usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: warning:
libstdc++.so.5, needed by
../../mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-64bit/lib/libmysqlcppconn.so,
may conflict with libstdc++.so.6

"libstdc++.so.5" belongs to GCC 3.2.x. That means the MySQL Connector/C++ binaries I am trying to link against have been build with GCC 3.2. But my GCC is 4.2.1. Little-idiots pitfall: remember what has been said about mixing different compiler versions? It may or may not work. We cannot do anything about it. There can be incompatibilities that have causes beyond our control. Compiling may even work in some cases but when running the resulting binary you get a crash.


nixnutz@ulflinux:~/NetBeansProjects/Application_1/dist/Release/GNU-Linux-x86> ./application_1
        
Running 'SELECT 'Hello World!' AS _message'...
        ... MySQL replies: Hello World!
*** glibc detected *** ./application_1: free(): invalid pointer: 0x0000000000603c10 ***
======= Backtrace: =========
/lib64/libc.so.6[0x2aca8a0a121d]
/lib64/libc.so.6(cfree+0x76)[0x2aca8a0a2f76]
./application_1(__gxx_personality_v0+0x476)[0x40124e]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x2aca8a050b54]
./application_1(__gxx_personality_v0+0x91)[0x400e69]
======= Memory map: ========
[...]

The only solution is to build the MySQL Connector/C++ libraries yourself, if you cannot find binary package on our download page which works fine on your system. However, there is hope: if you tell us what systems you need, we may be able to build binaries for them in the future. Though, our primary focus is on covering all platforms and configurations supported by the MySQL Server.


Running the client application

A common pitfall are "error while loading shared libraries: abc.so.1" error messages when trying to run the newly compiled binary. The error message may state that "libmysqlcppconn.so" or "libmysqlclient*.so" is missing. In both cases you have successfully instructed NetBeans and your compiler/linker where to find the libaries for building but your shell does not know where to find them. "libmysqlcppconn.so" is somewhere in the installation directory of the MySQL driver for C++. "libmysqlclient*.so" ships with the (development) packages of the MySQL server. If "libmysqlclient*.so" is missing on your system, something went wrong with the installation of the MySQL server.


error while loading shared libraries: libmysqlcppconn.so.1: cannot open shared object file: No such file or directory

Install and/or locate the missing library on your system. Like on Windows you have three choices for fixing the problem. Either you copy the library into your current working directory or you copy it into a standard installation path for libraries on your system or you expand your search path using export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/missing/library/. The pro- and cons of the different approaches are the same as for Windows, you can look them up in the article MySQL Connector/C++: Guide on building a windows client using Visual Studio (for Dummies)”, if you want.


NetBeans project settings for static linking

Talking about the Windows version of this article: static linking on Linux requires the same basic steps. You need to tell the linker that you want to link against the static version of the MySQL Connector/C++ library and the libmysql. libmysql is provided by the MySQL Server. It is the library of the C-API. See also above on using Connector/C versus development packages of the MySQL Server.

Create a new project using the settings given above or modify the one you created. Open the Project Settings dialog. Change the list of libraries to link. Add "libmysqlcppconn-static.a" (mysqlcppconn-static) and "libmysqlclient.a" (mysqlclient).

  File->Project Properties->
  Build->Linker->
  Libraries->Libraries->
  click on "..."->Add Library


  File->Project Properties->
  Build->Linker->
  Libraries->Libraries


Tell NetBeans where to find the two libraries. The actual location of the library files depends on your setup, as discussed earlier.

  File->Project Properties->
  Build->Linker->
  General->Additional Library Directories


If you link against the static library of MySQL Connector/C++ but you forget to add the MySQL Client Library (libmysql), you get the same scrary error message like on Windows. But you will never forget, will you?


make[1]: Entering directory `/home/nixnutz/NetBeansProjects/Application_1'
rm -f -r build/Release
rm -f dist/Release/GNU-Linux-x86/application_1
make[1]: Leaving directory `/home/nixnutz/NetBeansProjects/Application_1'
        
Clean successful. Exit value 0.
        
Running "/usr/bin/make  -f Makefile CONF=Release" in /home/nixnutz/NetBeansProjects/Application_1
        
/usr/bin/make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/nixnutz/NetBeansProjects/Application_1'
/usr/bin/make  -f nbproject/Makefile-Release.mk dist/Release/GNU-Linux-x86/application_1
make[2]: Entering directory `/home/nixnutz/NetBeansProjects/Application_1'
mkdir -p build/Release/GNU-Linux-x86
g++    -c -O2 -I../../mysql-connector-c++-1.0.4-beta-linux-glibc2.3-x86-64bit/include -o build/Release/GNU-Linux-x86/newmain.o newmain.cpp
mkdir -p dist/Release/GNU-Linux-x86
g++     -o dist/Release/GNU-Linux-x86/application_1 build/Release/GNU-Linux-x86/newmain.o -L/usr/local/lib -lmysqlcppconn-static
/usr/local/lib/libmysqlcppconn-static.a(mysql_driver.o): In function `sql::mysql::MySQL_Driver::~MySQL_Driver()':
mysql_driver.cpp:(.text+0x23e): undefined reference to `mysql_server_end'
/usr/local/lib/libmysqlcppconn-static.a(mysql_driver.o): In function `sql::mysql::MySQL_Driver::~MySQL_Driver()':
mysql_driver.cpp:(.text+0x2b4): undefined reference to `mysql_server_end'
/usr/local/lib/libmysqlcppconn-static.a(mysql_driver.o): In function `sql::mysql::MySQL_Driver::~MySQL_Driver()':
mysql_driver.cpp:(.text+0x344): undefined reference to `mysql_server_end'
/usr/local/lib/libmysqlcppconn-static.a(mysql_driver.o): In function `sql::mysql::MySQL_Driver::MySQL_Driver()':
mysql_driver.cpp:(.text+0x3e0): undefined reference to `mysql_server_init'
/usr/local/lib/libmysqlcppconn-static.a(mysql_driver.o): In function `sql::mysql::MySQL_Driver::MySQL_Driver()':
mysql_driver.cpp:(.text+0x58e): undefined reference to `mysql_server_init'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::setTransactionIsolation(sql::transaction_isolation)':
mysql_connection.cpp:(.text+0xe9b): undefined reference to `mysql_query'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::setAutoCommit(bool)':
mysql_connection.cpp:(.text+0x1f76): undefined reference to `mysql_autocommit'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::setClientOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void const*)':
mysql_connection.cpp:(.text+0x2016): undefined reference to `mysql_debug'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::rollback()':
mysql_connection.cpp:(.text+0x20df): undefined reference to `mysql_rollback'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::releaseSavepoint(sql::Savepoint*)':
mysql_connection.cpp:(.text+0x2115): undefined reference to `mysql_get_server_version'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::getCatalog()':
mysql_connection.cpp:(.text+0x24f3): undefined reference to `mysql_get_server_version'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::prepareStatement(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
mysql_connection.cpp:(.text+0x261d): undefined reference to `mysql_stmt_init'
mysql_connection.cpp:(.text+0x2645): undefined reference to `mysql_error'
mysql_connection.cpp:(.text+0x2661): undefined reference to `mysql_sqlstate'
mysql_connection.cpp:(.text+0x267d): undefined reference to `mysql_errno'
mysql_connection.cpp:(.text+0x26b8): undefined reference to `mysql_error'
mysql_connection.cpp:(.text+0x26f5): undefined reference to `mysql_sqlstate'
mysql_connection.cpp:(.text+0x2729): undefined reference to `mysql_errno'
mysql_connection.cpp:(.text+0x2903): undefined reference to `mysql_stmt_prepare'
mysql_connection.cpp:(.text+0x2919): undefined reference to `mysql_stmt_error'
mysql_connection.cpp:(.text+0x2925): undefined reference to `mysql_stmt_sqlstate'
mysql_connection.cpp:(.text+0x2931): undefined reference to `mysql_stmt_errno'
mysql_connection.cpp:(.text+0x2953): undefined reference to `mysql_stmt_errno'
mysql_connection.cpp:(.text+0x296b): undefined reference to `mysql_stmt_sqlstate'
mysql_connection.cpp:(.text+0x298d): undefined reference to `mysql_stmt_error'
mysql_connection.cpp:(.text+0x2a3c): undefined reference to `mysql_stmt_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::commit()':
mysql_connection.cpp:(.text+0x2d95): undefined reference to `mysql_commit'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::close()':
mysql_connection.cpp:(.text+0x2dc3): undefined reference to `mysql_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::~MySQL_Connection()':
mysql_connection.cpp:(.text+0x2e31): undefined reference to `mysql_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::~MySQL_Connection()':
mysql_connection.cpp:(.text+0x2f03): undefined reference to `mysql_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::~MySQL_Connection()':
mysql_connection.cpp:(.text+0x2fd5): undefined reference to `mysql_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::init(std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, sql::_ConnectPropertyVal, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, sql::_ConnectPropertyVal> > >&)':
mysql_connection.cpp:(.text+0x4053): undefined reference to `mysql_init'
mysql_connection.cpp:(.text+0x4792): undefined reference to `mysql_options'
mysql_connection.cpp:(.text+0x47de): undefined reference to `mysql_options'
mysql_connection.cpp:(.text+0x483b): undefined reference to `mysql_options'
mysql_connection.cpp:(.text+0x4898): undefined reference to `mysql_options'
mysql_connection.cpp:(.text+0x48f5): undefined reference to `mysql_options'
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o):mysql_connection.cpp:(.text+0x4952): more undefined references to `mysql_options' follow
/usr/local/lib/libmysqlcppconn-static.a(mysql_connection.o): In function `sql::mysql::MySQL_Connection::init(std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, sql::_ConnectPropertyVal, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, sql::_ConnectPropertyVal> > >&)':
mysql_connection.cpp:(.text+0x4a4a): undefined reference to `mysql_ssl_set'
mysql_connection.cpp:(.text+0x4bb6): undefined reference to `mysql_real_connect'
mysql_connection.cpp:(.text+0x4bdd): undefined reference to `mysql_error'
mysql_connection.cpp:(.text+0x4bfd): undefined reference to `mysql_sqlstate'
mysql_connection.cpp:(.text+0x4c1d): undefined reference to `mysql_errno'
mysql_connection.cpp:(.text+0x4c57): undefined reference to `mysql_errno'
mysql_connection.cpp:(.text+0x4c7f): undefined reference to `mysql_sqlstate'
mysql_connection.cpp:(.text+0x4cb4): undefined reference to `mysql_error'
mysql_connection.cpp:(.text+0x4dcc): undefined reference to `mysql_close'
mysql_connection.cpp:(.text+0x4eda): undefined reference to `mysql_set_server_option'
/usr/local/lib/libmysqlcppconn-static.a(mysql_metadata.o): In function `sql::mysql::MySQL_ConnectionMetaData::getDatabaseProductVersion()':
mysql_metadata.cpp:(.text+0x184e9): undefined reference to `mysql_get_server_info'
/usr/local/lib/libmysqlcppconn-static.a(mysql_metadata.o): In function `sql::mysql::MySQL_ConnectionMetaData::MySQL_ConnectionMetaData(sql::mysql::MySQL_Connection*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_metadata.cpp:(.text+0x1eefa): undefined reference to `mysql_get_server_version'
/usr/local/lib/libmysqlcppconn-static.a(mysql_metadata.o): In function `sql::mysql::MySQL_ConnectionMetaData::MySQL_ConnectionMetaData(sql::mysql::MySQL_Connection*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_metadata.cpp:(.text+0x1f114): undefined reference to `mysql_get_server_version'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::closeIntern()':
mysql_prepared_statement.cpp:(.text+0x3c7): undefined reference to `mysql_stmt_close'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::getResultSet()':
mysql_prepared_statement.cpp:(.text+0x1e7d): undefined reference to `mysql_more_results'
mysql_prepared_statement.cpp:(.text+0x1e97): undefined reference to `mysql_next_result'
mysql_prepared_statement.cpp:(.text+0x1eb1): undefined reference to `mysql_stmt_attr_set'
mysql_prepared_statement.cpp:(.text+0x1eca): undefined reference to `mysql_stmt_store_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::executeQuery()':
mysql_prepared_statement.cpp:(.text+0x2110): undefined reference to `mysql_stmt_attr_set'
mysql_prepared_statement.cpp:(.text+0x2129): undefined reference to `mysql_stmt_store_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::executeUpdate()':
mysql_prepared_statement.cpp:(.text+0x391c): undefined reference to `mysql_stmt_affected_rows'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::execute()':
mysql_prepared_statement.cpp:(.text+0x3978): undefined reference to `mysql_stmt_field_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::sendLongDataBeforeParamBind()':
mysql_prepared_statement.cpp:(.text+0x3dc0): undefined reference to `mysql_stmt_send_long_data'
mysql_prepared_statement.cpp:(.text+0x3ddd): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x3df0): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x3e03): undefined reference to `mysql_stmt_errno'
mysql_prepared_statement.cpp:(.text+0x3e2c): undefined reference to `mysql_stmt_errno'
mysql_prepared_statement.cpp:(.text+0x3fcd): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x400d): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x4041): undefined reference to `mysql_stmt_errno'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::do_query()':
mysql_prepared_statement.cpp:(.text+0x43eb): undefined reference to `mysql_stmt_bind_param'
mysql_prepared_statement.cpp:(.text+0x4405): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x4415): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x4425): undefined reference to `mysql_stmt_errno'
mysql_prepared_statement.cpp:(.text+0x4454): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x4485): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x44ad): undefined reference to `mysql_stmt_errno'
mysql_prepared_statement.cpp:(.text+0x4671): undefined reference to `mysql_stmt_execute'
mysql_prepared_statement.cpp:(.text+0x46a1): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x46b1): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x46c1): undefined reference to `mysql_stmt_errno'
mysql_prepared_statement.cpp:(.text+0x46f0): undefined reference to `mysql_stmt_error'
mysql_prepared_statement.cpp:(.text+0x4721): undefined reference to `mysql_stmt_sqlstate'
mysql_prepared_statement.cpp:(.text+0x4749): undefined reference to `mysql_stmt_errno'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::MySQL_Prepared_Statement(st_mysql_stmt*, sql::Connection*, sql::ResultSet::enum_type, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_prepared_statement.cpp:(.text+0x49e7): undefined reference to `mysql_stmt_param_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_prepared_statement.o): In function `sql::mysql::MySQL_Prepared_Statement::MySQL_Prepared_Statement(st_mysql_stmt*, sql::Connection*, sql::ResultSet::enum_type, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_prepared_statement.cpp:(.text+0x4c53): undefined reference to `mysql_stmt_param_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::seek()':
mysql_ps_resultset.cpp:(.text+0x3cd): undefined reference to `mysql_stmt_data_seek'
mysql_ps_resultset.cpp:(.text+0x3da): undefined reference to `mysql_stmt_fetch'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::next()':
mysql_ps_resultset.cpp:(.text+0x46f): undefined reference to `mysql_stmt_data_seek'
mysql_ps_resultset.cpp:(.text+0x47c): undefined reference to `mysql_stmt_fetch'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::previous()':
mysql_ps_resultset.cpp:(.text+0x57c): undefined reference to `mysql_stmt_data_seek'
mysql_ps_resultset.cpp:(.text+0x589): undefined reference to `mysql_stmt_fetch'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::relative(int)':
mysql_ps_resultset.cpp:(.text+0x15b8): undefined reference to `mysql_stmt_data_seek'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::beforeFirst()':
mysql_ps_resultset.cpp:(.text+0x2779): undefined reference to `mysql_stmt_data_seek'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::rowsCount() const':
mysql_ps_resultset.cpp:(.text+0x28f6): undefined reference to `mysql_stmt_num_rows'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::MySQL_Prepared_ResultSet(st_mysql_stmt*, sql::mysql::MySQL_ResultBind*, sql::mysql::MySQL_Prepared_Statement*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_ps_resultset.cpp:(.text+0x5bde): undefined reference to `mysql_stmt_result_metadata'
mysql_ps_resultset.cpp:(.text+0x5bef): undefined reference to `mysql_stmt_field_count'
mysql_ps_resultset.cpp:(.text+0x5c05): undefined reference to `mysql_stmt_num_rows'
mysql_ps_resultset.cpp:(.text+0x5c45): undefined reference to `mysql_fetch_field'
mysql_ps_resultset.cpp:(.text+0x5d11): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset.o): In function `sql::mysql::MySQL_Prepared_ResultSet::MySQL_Prepared_ResultSet(st_mysql_stmt*, sql::mysql::MySQL_ResultBind*, sql::mysql::MySQL_Prepared_Statement*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_ps_resultset.cpp:(.text+0x5ec4): undefined reference to `mysql_stmt_result_metadata'
mysql_ps_resultset.cpp:(.text+0x5ed5): undefined reference to `mysql_stmt_field_count'
mysql_ps_resultset.cpp:(.text+0x5eeb): undefined reference to `mysql_stmt_num_rows'
mysql_ps_resultset.cpp:(.text+0x5f2b): undefined reference to `mysql_fetch_field'
mysql_ps_resultset.cpp:(.text+0x5ff7): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::isZerofill(unsigned int)':
mysql_ps_resultset_metadata.cpp:(.text+0x2e5): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::isSigned(unsigned int)':
mysql_ps_resultset_metadata.cpp:(.text+0x563): undefined reference to `mysql_fetch_field_direct'
mysql_ps_resultset_metadata.cpp:(.text+0x589): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::isReadOnly(unsigned int)':
mysql_ps_resultset_metadata.cpp:(.text+0x7f3): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::isNullable(unsigned int)':
mysql_ps_resultset_metadata.cpp:(.text+0x94b): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o):mysql_ps_resultset_metadata.cpp:(.text+0xcff): more undefined references to `mysql_fetch_field_direct' follow
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::~MySQL_Prepared_ResultSetMetaData()':
mysql_ps_resultset_metadata.cpp:(.text+0x1fa9): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::~MySQL_Prepared_ResultSetMetaData()':
mysql_ps_resultset_metadata.cpp:(.text+0x2049): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::~MySQL_Prepared_ResultSetMetaData()':
mysql_ps_resultset_metadata.cpp:(.text+0x20e9): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::MySQL_Prepared_ResultSetMetaData(st_mysql_stmt*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_ps_resultset_metadata.cpp:(.text+0x21ab): undefined reference to `mysql_stmt_result_metadata'
mysql_ps_resultset_metadata.cpp:(.text+0x21bc): undefined reference to `mysql_stmt_field_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_ps_resultset_metadata.o): In function `sql::mysql::MySQL_Prepared_ResultSetMetaData::MySQL_Prepared_ResultSetMetaData(st_mysql_stmt*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_ps_resultset_metadata.cpp:(.text+0x224f): undefined reference to `mysql_stmt_result_metadata'
mysql_ps_resultset_metadata.cpp:(.text+0x2260): undefined reference to `mysql_stmt_field_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultbind.o): In function `sql::mysql::MySQL_ResultBind::bindResult()':
mysql_resultbind.cpp:(.text+0x6fe): undefined reference to `mysql_stmt_field_count'
mysql_resultbind.cpp:(.text+0x88b): undefined reference to `mysql_stmt_result_metadata'
mysql_resultbind.cpp:(.text+0x8b9): undefined reference to `mysql_fetch_field'
mysql_resultbind.cpp:(.text+0xa04): undefined reference to `mysql_stmt_bind_result'
mysql_resultbind.cpp:(.text+0xa21): undefined reference to `mysql_stmt_error'
mysql_resultbind.cpp:(.text+0xa38): undefined reference to `mysql_stmt_sqlstate'
mysql_resultbind.cpp:(.text+0xa4f): undefined reference to `mysql_stmt_errno'
mysql_resultbind.cpp:(.text+0xa89): undefined reference to `mysql_stmt_error'
mysql_resultbind.cpp:(.text+0xabd): undefined reference to `mysql_stmt_sqlstate'
mysql_resultbind.cpp:(.text+0xae8): undefined reference to `mysql_stmt_errno'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultbind.o): In function `sql::mysql::MySQL_AutoResultSet::~MySQL_AutoResultSet()':
mysql_resultbind.cpp:(.text._ZN3sql5mysql19MySQL_AutoResultSetD1Ev[sql::mysql::MySQL_AutoResultSet::~MySQL_AutoResultSet()]+0x14): undefined reference to `mysql_free_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::getMoreResults()':
mysql_statement.cpp:(.text+0x1525): undefined reference to `mysql_more_results'
mysql_statement.cpp:(.text+0x153b): undefined reference to `mysql_next_result'
mysql_statement.cpp:(.text+0x1551): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x155d): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x1569): undefined reference to `mysql_errno'
mysql_statement.cpp:(.text+0x1594): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x15c1): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x15e5): undefined reference to `mysql_errno'
mysql_statement.cpp:(.text+0x179b): undefined reference to `mysql_field_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::get_resultset()':
mysql_statement.cpp:(.text+0x1a14): undefined reference to `mysql_use_result'
mysql_statement.cpp:(.text+0x1a23): undefined reference to `mysql_store_result'
mysql_statement.cpp:(.text+0x1a43): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x1a4f): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x1a5b): undefined reference to `mysql_errno'
mysql_statement.cpp:(.text+0x1a8d): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x1ab7): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x1ad8): undefined reference to `mysql_errno'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::getResultSet()':
mysql_statement.cpp:(.text+0x1d35): undefined reference to `mysql_use_result'
mysql_statement.cpp:(.text+0x1d44): undefined reference to `mysql_store_result'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::do_query(char const*, unsigned long)':
mysql_statement.cpp:(.text+0x1ec9): undefined reference to `mysql_real_query'
mysql_statement.cpp:(.text+0x1ed6): undefined reference to `mysql_errno'
mysql_statement.cpp:(.text+0x1f02): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x1f0e): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x1f1a): undefined reference to `mysql_errno'
mysql_statement.cpp:(.text+0x1f45): undefined reference to `mysql_error'
mysql_statement.cpp:(.text+0x1f6f): undefined reference to `mysql_sqlstate'
mysql_statement.cpp:(.text+0x1f90): undefined reference to `mysql_errno'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::executeUpdate(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
mysql_statement.cpp:(.text+0x21be): undefined reference to `mysql_field_count'
mysql_statement.cpp:(.text+0x22c0): undefined reference to `mysql_affected_rows'
/usr/local/lib/libmysqlcppconn-static.a(mysql_statement.o): In function `sql::mysql::MySQL_Statement::execute(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
mysql_statement.cpp:(.text+0x2484): undefined reference to `mysql_field_count'
mysql_statement.cpp:(.text+0x24b1): undefined reference to `mysql_affected_rows'
/usr/local/lib/libmysqlcppconn-static.a(mysql_parameter_metadata.o): In function `sql::mysql::MySQL_ParameterMetaData::MySQL_ParameterMetaData(st_mysql_stmt const*)':
mysql_parameter_metadata.cpp:(.text+0x7c3): undefined reference to `mysql_stmt_param_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_parameter_metadata.o): In function `sql::mysql::MySQL_ParameterMetaData::MySQL_ParameterMetaData(st_mysql_stmt const*)':
mysql_parameter_metadata.cpp:(.text+0x829): undefined reference to `mysql_stmt_param_count'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::seek()':
mysql_resultset.cpp:(.text+0x3af): undefined reference to `mysql_data_seek'
mysql_resultset.cpp:(.text+0x3c4): undefined reference to `mysql_fetch_row'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::next()':
mysql_resultset.cpp:(.text+0x14d7): undefined reference to `mysql_fetch_row'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::beforeFirst()':
mysql_resultset.cpp:(.text+0x25a1): undefined reference to `mysql_data_seek'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::absolute(int)':
mysql_resultset.cpp:(.text+0x26c6): undefined reference to `mysql_data_seek'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::rowsCount() const':
mysql_resultset.cpp:(.text+0x272c): undefined reference to `mysql_num_rows'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::getString(unsigned int) const':
mysql_resultset.cpp:(.text+0x2a05): undefined reference to `mysql_fetch_lengths'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::getUInt(unsigned int) const':
mysql_resultset.cpp:(.text+0x2c8e): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::getInt(unsigned int) const':
mysql_resultset.cpp:(.text+0x2efa): undefined reference to `mysql_fetch_field_direct'
mysql_resultset.cpp:(.text+0x2f4e): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::getUInt64(unsigned int) const':
mysql_resultset.cpp:(.text+0x31eb): undefined reference to `mysql_fetch_field_direct'
mysql_resultset.cpp:(.text+0x3247): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o):mysql_resultset.cpp:(.text+0x3509): more undefined references to `mysql_fetch_field_direct' follow
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::MySQL_ResultSet(sql::mysql::MYSQL_RES_Wrapper*, sql::mysql::MySQL_Statement*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_resultset.cpp:(.text+0x3da4): undefined reference to `mysql_num_rows'
mysql_resultset.cpp:(.text+0x3dc4): undefined reference to `mysql_num_fields'
mysql_resultset.cpp:(.text+0x3df1): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset.o): In function `sql::mysql::MySQL_ResultSet::MySQL_ResultSet(sql::mysql::MYSQL_RES_Wrapper*, sql::mysql::MySQL_Statement*, sql::mysql::util::my_shared_ptr<sql::mysql::MySQL_DebugLogger>*)':
mysql_resultset.cpp:(.text+0x402c): undefined reference to `mysql_num_rows'
mysql_resultset.cpp:(.text+0x404c): undefined reference to `mysql_num_fields'
mysql_resultset.cpp:(.text+0x4079): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isZerofill(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2a2): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x3ba): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isWritable(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x4fa): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isSigned(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x744): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x85c): undefined reference to `mysql_fetch_field_direct'
mysql_resultset_metadata.cpp:(.text+0x892): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isSearchable(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x9d2): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isReadOnly(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0xc04): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0xd1c): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isNullable(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0xe76): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0xf8e): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isDefinitelyWritable(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x10de): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isCurrency(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x1328): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isAutoIncrement(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x155a): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x1672): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getTableName(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x17bb): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x1915): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getSchemaName(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x1ac1): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x1c06): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getPrecision(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x1de0): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x1ef8): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getScale(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x204d): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x21a0): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnName(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2333): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x248d): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnLabel(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2637): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x2791): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnDisplaySize(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2934): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x2a4c): undefined reference to `mysql_fetch_field_direct'
mysql_resultset_metadata.cpp:(.text+0x2a70): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnCount()':
mysql_resultset_metadata.cpp:(.text+0x2bb3): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getCatalogName(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2cea): undefined reference to `mysql_num_fields'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::isCaseSensitive(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x2f6e): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x30d7): undefined reference to `mysql_fetch_field_direct'
        
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnTypeName(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x3427): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x3581): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_resultset_metadata.o): In function `sql::mysql::MySQL_ResultSetMetaData::getColumnType(unsigned int)':
mysql_resultset_metadata.cpp:(.text+0x372c): undefined reference to `mysql_num_fields'
mysql_resultset_metadata.cpp:(.text+0x3844): undefined reference to `mysql_fetch_field_direct'
/usr/local/lib/libmysqlcppconn-static.a(mysql_res_wrapper.o): In function `sql::mysql::MYSQL_RES_Wrapper::dispose()':
mysql_res_wrapper.cpp:(.text+0x30e): undefined reference to `mysql_free_result'
collect2: ld returned 1 exit status
make[2]: *** [dist/Release/GNU-Linux-x86/application_1] Fehler 1
make[2]: Leaving directory `/home/nixnutz/NetBeansProjects/Application_1'
make[1]: *** [.build-conf] Fehler 2
make[1]: Leaving directory `/home/nixnutz/NetBeansProjects/Application_1'
make: *** [.build-impl] Fehler 2
        
Build failed. Exit value 2.


IDE code completion

IDE code completion works out of the box and appears as you write your client application.


The pool is open

Experts, dummies, little idiots and internet super heroes, feel free to ask your questions at the MySQL Connector/C++ forum: http://forums.mysql.com/list.php?167. GA is not far from now. We are looking forward to listen to your feedback.