Setting up Mysql++ in linux

六眼飞鱼酱① 提交于 2019-12-03 07:35:14

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.

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!