尝试在华硕 Tinker Board 上的 C++ 程序中使用 mysql++.h 时遇到编译问题。
包括如下所示:
#include <mysql++.h>
#include <stdlib.h>
执行的 G++ 命令是这个:
g++ -I/usr/include/mysql -I/usr/include/mysql++ -L/usr/lib -lmysqlpp -lmysqlclient mysql.c -o mysql
输出包含以下内容:
In file included from /usr/include/mysql++/sql_buffer.h:31:0,
from /usr/include/mysql++/stadapter.h:35,
from /usr/include/mysql++/qparms.h:35,
from /usr/include/mysql++/query.h:35,
from /usr/include/mysql++/mysql++.h:58,
from mysql.c:1:
/usr/include/mysql++/refcounted.h: In constructor ‘mysqlpp::RefCountedPointer<T, Destroyer>::RefCountedPointer(T*)’:
/usr/include/mysql++/refcounted.h:104:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
std::auto_ptr<T> exception_guard(counted_);
^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
from /usr/include/mysql++/refcounted.h:31,
from /usr/include/mysql++/sql_buffer.h:31,
from /usr/include/mysql++/stadapter.h:35,
from /usr/include/mysql++/qparms.h:35,
from /usr/include/mysql++/query.h:35,
from /usr/include/mysql++/mysql++.h:58,
from mysql.c:1:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^~~~~~~~
我尝试通过将“std::auto_ptr”更改为“std::unique_ptr”来修改文件“/refcounted.h”,它编译成功,但是在尝试运行我的程序时出现“分段错误”。
请帮忙,谢谢。