0

尝试在华硕 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”,它编译成功,但是在尝试运行我的程序时出现“分段错误”。

请帮忙,谢谢。

4

0 回答 0