Linux C++程序运行的问题

在windows上运行没有问题,但是在Linux运行中出现了

error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string}’ through ‘...’这样的错误。

所在文件的情况:
文件中包含string头文件;
代码中对应了LOG的代码部分:
PLOGINFO("jsonhelp parse1 %s", pret.c_str());

函数声明:
#define PLOGINFO(fmt, ...) PLOG(LOGLEVEL::LOG_INFO, fmt, ##__VA_ARGS__);
void PLOG(LOGLEVEL loglevel, const char* fmt, ...);

确实是不知道到底是怎么回事,在网上查到的都是没有加.c_str函数,但是我确实加了的。

https://blog.csdn.net/wuzuyu365/article/details/53406990

把你的PLOG函数 ,第二个参数以后的“...”删了,从新编译试试。c++的新规则已经在淘汰这种写法

VA_ARGS貌似是VS的,linux应该这么定义:
#define PLOGINFO(fmt...) PLOG(LOGLEVEL::LOG_INFO, ##fmt);