gcc g++ 3.4和4.5的区别 extra qualification ‘const char*’ to ‘char*’等错误
来源:互联网 发布:数据分析师 知乎 编辑:程序博客网 时间:2024/06/05 20:00
c++ -I/usr/lib/qt3/include -Wall -O3 -I. -I../gsm -I../ilbc -I../dissipate2 -DHAVE_CONFIG_H -DSHARE_DIR=\"/usr/local/share/apps/kphone\" -DPO_DIR=\"/usr/local/share/kphone/translations//\" -c -o main.o main.cpp
In file included from main.cpp:5:
kcallwidget.h:70: error: extra qualification ‘KCallWidget::’ on member ‘setDTMFSender’
In file included from main.cpp:7:
kphoneview.h:57: error: extra qualification ‘KPhoneView::’ on member ‘DoCall’
make[1]: *** [main.o] 错误 1
make[1]: Leaving directory `/home/soft/kphone/kphone'
make: *** [all] 错误 2
查找原因如下:
很多比较旧的代码会有如写法
class Foo
{
int Foo::Foo(void);
}
在g++ 4.1以后会报错 extra qualification
直接改为
class Foo
{
int Foo(void);
}
即可
Extra qualification errors are common with gcc4. This means a class is
redundantly mentioned with a class function. Just remove the part before :: on the mentioned line"
Extra qualification error是使用版本4以上的GCC/G++编译C++程序时经常出现的错误。
这是语句中多引用了类的名称--把函数前面::的类名称去掉即可
如:
std::string Socket::connectionName();
connectionName是类Socket的成员函数,而Socket是std 中type为string的子类.
这里不用重复引用Socket,可直接写成
std::string connectionName();
1、invalid conversion from ‘const char*’ to ‘char*’
解决:
pn = strchr(p, PATH_SP);
改为
pn = (char *)strchr(p, PATH_SP);
2、 ‘PACKAGE_STRING’ was not declared in this scope
‘PACKAGE_BUGREPORT’ was not declared in this scope
解决:
fprintf(stderr,"%s Copyright: YuHong(992126018601033)",PACKAGE_STRING);
fprintf(stderr,"bug report: %s\n\n",PACKAGE_BUGREPORT);
替换为:
fprintf(stderr,"CTorrent devel Copyright: YuHong(992126018601033)");
fprintf(stderr,"bug report: www.linuxidc.com@www.linuxidc.com\n\n");
3、fatal error: openssl/sha.h: 没有那个文件或目录
缺少 openssl dev包,解决:安装libssl-dev
sudo apt-get install libssl-dev
4、undefined reference to `SHA1_Init'
undefined reference to `SHA1_Update'
undefined reference to `SHA1_Final'
解决1:
1.确认你装了openssl
2.g++ 后加上参数 -lssl
解决2:
或者/usr/lib/libssl.so加入程序library库下
Eclipse CDT下设置g++参数的方法
Project->Properties->C/C++ Build->Setting->GCC C++ Linker->Miscellaneous->Linker Flag 处加上 -lssl
- gcc g++ 3.4和4.5的区别 extra qualification ‘const char*’ to ‘char*’等错误
- const char * 和char * const 的区别
- gcc中extra qualification错误
- gcc中extra qualification错误
- char ** 和 const char ** 区别
- typedef char * pStr的问题和const char*, char const*, char*const的区别
- typedef char * pStr的问题和const char*, char const*, char*const的区别
- const char *|char const char * 与char * const 的区别
- 关于const char*, char const* and char *const 等的区别
- 关于const char*, char const* and char *const 等的区别
- 关于const char*, char const* and char *const 等的区别
- 关于const char*, char const* and char *const 等的区别
- const char * 和 char const * 和 char * const 区别
- const char * 和 char const * 和 char * const 区别
- const char * 和 char const * 和 char * const 区别
- const char * 和 char const * 和 char * const 区别
- const char * 和char *const 区别
- const char *与char * const的区别
- ptrdiff_t does not name a type造成编译错误
- 球哈希Spherical Hashing
- G-sensor的抖动问题
- java 冒泡排序
- java 反射详解
- gcc g++ 3.4和4.5的区别 extra qualification ‘const char*’ to ‘char*’等错误
- 掌握设计模式
- 门面模式(Facade)----结构笔记
- ZigBee 2007-Pro(无线系统)多跳组播的
- 大数据,第三方数据分析的角度
- Android蓝牙系统
- Linux vi 经验总结
- window cmd 创建文本文件
- Machine Learning---感知器学习算法