我正在使用我们产品代码中的第三方代码(openssl)。在编译代码时,我得到了可以在Linux(gcc / g ++)中使用-fpermissive标志将其抑制为警告的错误。在Windows中,Visual Studio(2005)中出现相同的编译错误。想知道-fpermissive标志的替代方案,可以在Visual Studio中使用它来抑制错误。
我尝试在模块属性-> C / C ++->命令行->其他选项中添加'/ fpermissive','/ Ze'等标记。但这并不能解决问题。
获取如下错误。 ssl / packet_locl.h(429):错误C2440:'=':无法从'void *'转换为'unsigned char '从'void '转换为指向非'void'的指针需要显式投射
由于第三方代码有误,因此我们无法在其中进行任何代码更改。
预期结果:我们需要将此错误排除为警告,然后成功进行编译。
答案 0 :(得分:0)
>>我尝试在模块属性-> C / C ++->命令行->其他选项中添加“ / fpermissive”,“ / Ze”等标记。
这是在gcc上定义的,不能在VS上使用。这不适用于VS。
>>不能从'void *'转换为'unsigned char'从'void'转换为指向非'void'的指针的转换需要显式转换
这些是语言定义的错误。您不能忽略这些错误并直接运行程序。它们无法编译。
>>由于第三方代码有误,因此我们无法在其中进行任何代码更改。
如果您严格遵守使用这些第三方库的接口的方法,则不会出现此类错误。您需要的是修改自己的代码,而不更改第三方库代码。