ubuntu22.04使用libmysqlclient-dev,在包含mysql.h時會出現‘net_async_status’未聲明
//mysql Ver 8.0.41-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
//庫文件是libmysqlclient-dev
//在使用 g++編譯含mysql.h的文件時,系統使用的是ubuntu22.04
//發現會出現 /usr/include/mysql/mysql.h:486:6: error: use of enum ‘net_async_status’ without previous declaration
//但通過查看頭文件發現mysql.h包含了mysql/client_plugin.h,此頭文件包含了mysql/plugin_auth_common.h
//net_async_status 就定義在 plugin_auth_common.h,同時也沒發現因條件編譯導致plugin_auth_common.h未包含和net_async_status的未聲明
//所以我采取在mysql.h用條件編譯來額外再定義一次來解決此問題,plugin_auth_common.h也同樣添加了條件編譯預處理
#ifndef DECLARATION_NET_ASYNC_STATUS
#define DECLARATION_NET_ASYNC_STATUS
enum net_async_status {
NET_ASYNC_COMPLETE = 0,
NET_ASYNC_NOT_READY,
NET_ASYNC_ERROR,
NET_ASYNC_COMPLETE_NO_MORE_RESULTS
};
#endif

浙公網安備 33010602011771號