acl-dev / acl

C/C++ server and network library, including coroutine,redis client,http/https/websocket,mqtt, mysql/postgresql/sqlite client with C/C++ for Linux, Android, iOS, MacOS, Windows, etc..
https://acl-dev.cn
GNU Lesser General Public License v3.0
2.83k stars 937 forks source link

acl::log::msg4与soci::logger::msg4冲突 #329

Closed AECCCK closed 4 months ago

AECCCK commented 4 months ago

您好,项目中使用了acl::thread_pool,同时使用了SOCI做ORACLE的接口,编译时发现报错如下: 屏幕截图 2024-04-12 152637 屏幕截图 2024-04-12 152944

疑似是 acl::log::msg4和soci::logger::msg4编译冲突? 我的编译环境是: win32 编译器mscv2017

请问有什么解决方案吗

zhengshuxin commented 4 months ago

Acl中在记日志时为了获取调用函数的信息,所以使用变参宠系列 logger_xxx,有可能会与第三方的类似函数发生冲突。解决方法有两个:一是将 Acl 库的头文件与其它库的头分开,避免冲突,二是在编译时增加编译条件定义ACL_LOGGER_MACRO_OFF,或在引用 Acl 头文件前面增加『#define ACL_LOGGER_MACRO_OFF』,这个ACL_LOGGER_MACRO_OFF是刚刚添加的,你可以试试。

AECCCK commented 4 months ago

解決了!謝謝! 期間遇到個問題是預定義了ACL_LOGGER_MACRO_OFF以後,log.hpp文件中的logger_test1函數因爲沒有#define logger報錯,後來手動把logger_test1注釋掉才編譯通過的

zhengshuxin commented 4 months ago

谢谢,logger_test1, logger_test2 也加进去了。