MySQL Connector C ++ 64bit comstackción a partir de la fuente en Visual Studio 2012

Estoy tratando de comstackr mySQL Connector C ++ desde la fuente en Visual Studio 2012 para la architecture de 64 bits . Entiendo que depende de algunos archivos de encabezado boost y el conector C. La ejecución de CMake produce un archivo de proyecto, pero ese archivo de proyecto no se comstack debido a una gran lista de errores muy confusos que probablemente tienen que ver con los archivos de inclusión y una lista de advertencias aún mayor. El sitio oficial es de poca ayuda.

¿Alguien podría enumerar todos los pasos para comstackr con éxito el conector de C ++?

Para construirlo necesitas tener lo siguiente:

  1. Debe tener instalado el servidor MySQL o el conector C de MySQL .
  2. Tener instaladas las bibliotecas de Boost C ++ o tener los archivos de origen para ello. Tenga en cuenta que no es necesario generar impulso ya que solo necesita los archivos de encabezado.
  3. Tener CMake instalado. Al instalar CMake, le preguntará si desea que se incluya en la variable PATH , debe seleccionar Sí para que luego sea más fácil usarlo.

Una vez que tenga los tres disponibles, abra el símbolo del sistema de herramientas nativas VS2012 x64 y, desde el directorio raíz de origen del MySQL C ++ Connector, debe emitir lo siguiente:

 set MYSQL_DIR=c:\PROGRA~1\MySQL\MYSQLC~1.1 cmake -G "Visual Studio 11 Win64" ^ -DBOOST_ROOT:STRING=C:\Users\user\DOWNLO~1\BOOST_~1\BOOST_~1 ^ -DMYSQL_LIB_DIR:STRING=c:\PROGRA~1\MySQL\MYSQLC~1.1\LIB devenv.com MySQLCPPCONN.sln /build Release 

El primer comando define la variable MYSQL_DIR que apunta a la instalación del servidor MySQL o el conector C de MySQL. El segundo comando llama a cmake para preparar un proyecto VS que será de 64 bits. Parece que hay un problema con la variable MYSQL_LIB_DIR y no se genera, por lo que necesitamos definirla manualmente. MYSQL_LIB_DIR tiene el valor de MYSQL_DIR termina con un \LIB . El tercer comando es opcional, construirá el proyecto desde el símbolo del sistema sin abrir VS.

Se recomienda que utilice las rutas de DOS para las variables. Para hacerlo, navegue hasta el directorio que desea convertir a la ruta de DOS y llame for %I in (.) do echo %~sI . Te dará el camino convertido.

Es una tarea muy difícil y he pasado muchas horas resolviendo esto.

Hay dos problemas aquí:

  1. Las bibliotecas de C ++ Connector y MySQL que han proporcionado se han generado con Visual Studio 2010. Por lo tanto, no podemos usarlas, ya que están bajo VS2012 (da error de falta de coincidencia de versión)

  2. Tampoco han especificado las opciones exactas del comstackdor bajo las cuales han comstackdo estas bibliotecas. Si la configuración de nuestro comstackdor es diferente, terminaremos en muchos y muchos errores (especialmente relacionados con el enlazador).

Teniendo en cuenta estos hechos, la única forma es construirnos nosotros mismos estas bibliotecas. Construir MySQL es rápido pero construir conector es un poco complicado.

Aquí hay pasos que estoy compartiendo. En mi caso, quería vincular estas bibliotecas de forma estática con mi proyecto, por lo que las construí en consecuencia. Es posible que desee realizar cambios relevantes cuando sea necesario según su necesidad.

Antes de continuar con estos pasos, descargue e instale CMake en su sistema.

Pasos para construir el servidor MySQL:

  1. Descargar fuente MySQL. Extraerlos. Ir a la carpeta extraída en el símbolo del sistema.

  2. Crear forder BLD

  3. Ir a la carpeta BLD a través del símbolo del sistema

  4. correr

     cmake .. -G "Visual Studio 11 2012 Win64" 

    Se creará MySQL.sln

  5. Abra MySQL.sln en Visual Studio y genere solo la biblioteca ‘mysqlclient’ (ya que esto solo lo necesitaría la aplicación)

Esto construirá las bibliotecas en la carpeta mysql-5.6.24 \ BLD \ libmysql \ que vinculamos en nuestro proyecto.

Pasos para construir el conector de C ++:

  1. Descargar mysql-connector-c ++ source. Extraelo. Ir a la carpeta extraída en el símbolo del sistema.

  2. Crear forder BLD

  3. Ir a la carpeta BLD a través del símbolo del sistema

  4. Ejecute este comando (asegúrese de haber creado el servidor MySQL antes de esto, en el modo Liberar y Liberar. También asegúrese de haber descargado las fonts Boost)

     cmake .. -DMYSQL_INCLUDE_DIR="..\..\mysql-5.6.24\include" -DMYSQL_LIB_DIR:STRING="..\mysql-5.6.24\BLD\libmysql\Release" -DBOOST_ROOT:STRING="..\Boost\boost_1_54_0" -DMYSQL_CLIENT_STATIC_LINKING=1 -G "Visual Studio 11 2012 Win64" 

    Se creará MYSQLCPPCONN.sln

  5. Abra MYSQLCPPCONN.sln en Visual Studio y realice cambios en el proyecto ‘mysqlcppconn-static’:

    A. Bajo C / C ++ -> General -> Directorios de inclusión adicionales ponga esto (para todas las configuraciones)

      nativeapi;..\;..\..\;..\cppconn;..\..\cppconn;..\..\..\mysql-5.6.24\include;..\..\..\mysql-5.6.24\BLD\include;..\..\..\Boost\boost_1_54_0 

    B. En Code Genaration, cambie Runtime Library a Multiproceso (depuración o no depuración depende de la configuración) y NO DLL

    C. En Bibliotecario -> Todas las opciones mantienen en blanco las “Opciones adicionales” y “Ignorar bibliotecas predeterminadas específicas” (para todas las configuraciones)

    D. Bajo Bibliotecario -> General mantenga “Ignorar bibliotecas predeterminadas específicas” en blanco (para todas las configuraciones)

  6. Cree solo el proyecto de biblioteca ‘mysqlcppconn-static’ (ya que solo la aplicación lo necesita para conectarse al servidor MySQL)

Esto generaría una biblioteca en mysql-connector-c ++ – 1.1.5 \ BLD \ driver \ que vinculamos en nuestro proyecto.