这个问题是因为size_t
取决于在配置 (make) 文件中调用 stddef 命名空间之前是否包含该命名空间。
我遇到了同样的问题(使用亚马逊 EC2 ubuntu 12.04 云服务器)并通过编辑有问题的文件解决了它(sql_buffer.cpp
就我而言,位于 /home/ubuntu/mysql++-3.1.0/lib )并包括 stddef (同时还将字符串命名空间向上移动):
#include <stddef.h>
#include <string.h>
#include "sql_buffer.h"
您的问题已通过此更正得到解答。但是,您可能会遇到其他问题,就像我一样。所以我解释一下我是如何解决一些后续问题的,你可能也有也可能没有。
你可能需要使用
sudo chown username sql_buffer.cpp
能够编辑该文件,具体取决于您的安装设置方式(例如,我是 ubuntu 用户)。
然后我遇到了另一个问题:
./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
所以我编辑了有问题的文件(genv2.cpp
) 和包含的字符串命名空间
#include <string.h>
然后我遇到了另一个问题:
./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
我本来可以编辑的Makefile.in
但选择简单地在命令行中运行:
sudo g++ -o test_ssqls2 test_ssqls2_ssqls2.o -lmysqlpp_ssqls2parse -L. -lmysqlclient -L/usr/lib/x86_64-linux-gnu -lmysqlpp
然后我继续make
过程。
这对我有用:mysql++已安装并正在运行。