我有一个问题:
我在QT Creator中有一个代码(在MSVC2013中构建),它首先完美地工作,现在在其他计算机上使用更新的QT Creator(内置在MSVC2015中),当尝试tu rungive我这个错误时:
“错误:C2664:'wave_object wave_init(char *)':无法转换 参数1从'const char [4]'到'char *'“”从字符串转换 文字丢失const限定符(参见/ Zc:strictStrings)“
错误出现在这部分代码中:
wave_object db4;
wt_object wt;
db4 = wave_init("db4");
wt = wt_init(db4, "dwt", N, 4);
setDWTExtension(wt, "sym");
setWTConv(wt, "direct");
方法的定义如下:
wave_object wave_init(char* wname) {
wave_object obj = NULL;
int retval;
retval = 0;
if (wname != NULL) {
retval = filtlength(wname);
}
我使用MinGW进行编译并且没有错误,在使用MSVC2013构建的QT Creator的计算机上也可以使用MSVC2013编译器工作正常但是现在使用MSVC2015构建的QT Creator与MSVC2015编译器一起出现此错误。
我需要使用构建QT Creator的相同编译器,因为我使用的是QWT插件,并且必须使用相同的编译器。
感谢您的帮助! =)
答案 0 :(得分:1)
在你的函数调用中:
db4 = wave_init("db4");
"db4"
参数是字符串文字,严格意义上是const
。
您对该功能的定义:
wave_object wave_init(char* wname)
未将参数wname
标识为const
。
修改如下:
wave_object wave_init(const char* wname)