Linux 如何解决函数调用中的gcc[-Werror=格式安全性]?

Linux 如何解决函数调用中的gcc[-Werror=格式安全性]?,linux,gcc,zeromq,Linux,Gcc,Zeromq,我对api进行了以下调用: 这会导致编译器错误: error: format not a string literal and no format arguments [-Werror=format-security] int rc = zsock_connect(updates, ("inproc://" + uuidStr).c_str()); ^

我对api进行了以下调用:

这会导致编译器错误:

error: format not a string literal and no format arguments [-Werror=format-security]
int rc = zsock_connect(updates, ("inproc://" + uuidStr).c_str());
                                                               ^                                                                                                    
我试过:

const char* connectTo = ("inproc://" + uuidStr).c_str();
int rc = zsock_connect(updates, connectTo);
而且

int rc = zsock_connect(updates, (const char*)("inproc://" + 
uuidStr).c_str());
但错误依然存在

我如何纠正这个问题

语境;我正在尝试使用pip安装在Linux上将此代码编译为Python扩展。在Windows上,它使用pip安装进行编译并运行良好,这可能是因为编译器的权限更大。

此函数的作用类似于printf和friends,对吗?如果是这样,那么与printfsome_var存在的问题相同-如果传递的字符串中包含格式序列,则会出现未定义的行为和不好的情况,因为不存在告诉函数预期的参数。解决方法是执行以下操作:

int rc = zsock_connnect(updates, "inproc://%s", uuidStr.c_str());
基本上,给它一个以字符串作为参数的格式

int rc = zsock_connnect(updates, "inproc://%s", uuidStr.c_str());