Setting up Mysql++ in linux

前端 未结 2 443
不思量自难忘°
不思量自难忘° 2021-02-09 20:24

I want to connect to a mysql database with C++ in linux. On my local machine I am running Ubuntu, and installed the mysql server and client packages:

sud

相关标签:
2条回答
  • 2021-02-09 20:53

    You need to install the header (dev) files, I assume one of these:

    apt-cache search mysql
    ...
    libmysqlclient-dev - MySQL database development files
    libmysqlclient16 - MySQL database client library
    libmysql++-dev - MySQL C++ library bindings (development)
    libmysqlcppconn-dev - MySQL Connector for C++ (development files)
    ...
    

    --with-mysql-lib should not be necessary because the files will be installed in the default locations.

    0 讨论(0)
  • 2021-02-09 21:16

    this problem is caused because size_t depends on the inclusion of stddef namespace before it is called in the configuration (make) files.

    i had the very same problem (using an amazon EC2 ubuntu 12.04 cloud server) and solved it by editing the offending file (sql_buffer.cpp located, in my case, /home/ubuntu/mysql++-3.1.0/lib) and including stddef (while also moving string namespace up):

    #include <stddef.h>
    #include <string.h>
    #include "sql_buffer.h"
    

    your question is answered with this correction. BUT, you might have additional problems, like i did. so i explain how i solved some subsequent problems, which you might or might not have also.

    you might have to use

    sudo chown username sql_buffer.cpp
    

    to be able to edit the file, depending on how your install is setup (i am user ubuntu, for example).

    i then bumped into another problem:

    ./ssx/genv2.cpp: In function âbool generate_ssqls2(const char*, const ParseV2*)â:
    ./ssx/genv2.cpp:70:28: error: âstrcmpâ was not declared in this scope
    

    so i edited the offending file (genv2.cpp) and included string namespace

    #include <string.h>
    

    then i had ANOTHER problem with:

    ./libmysqlpp_ssqls2parse.a(ssqls2parse_parsev2.o): In function `Type':
    /home/ubuntu/mysql++-3.1.0/./ssx/parsev2.cpp:256: undefined reference to `mysqlpp::internal::str_to_lwr
    

    i could have edited Makefile.in but chose to simply run in command line:

    sudo  g++ -o test_ssqls2 test_ssqls2_ssqls2.o -lmysqlpp_ssqls2parse   -L. -lmysqlclient   -L/usr/lib/x86_64-linux-gnu  -lmysqlpp
    

    i then continued the make process.

    that worked for me: mysql++ installed and running.

    0 讨论(0)
提交回复
热议问题