1、incompatible types in assignment of ‘char*’ to ‘char [64]’
可以使用strcpy();解决。
2、error: assigning to an array from an initializer list
// 不能对数组赋值,只能对数组元素初始化或赋值。
3、[Error] ‘f’ was not declared in this scope
f 没有进行声明
4、ld returned 1 exit status。//链接错误
(1)有正在运行的程序,解决办法:打卡任务管理器(ctrl+Alt+delete)关闭正在运行的程序
(2)函数、变量出现重名,析构函数未定义,static变量未有初始化,语法有无错误。
(3)编译器问题(一般不会主要检查自己代码)。
5、error: expected ‘;’ before ‘strResponse’
因为在strResponse之前的数据类型不能定义strResponse,我的错误是因为strResponse是类类型而我未包含作用域。
6、 no known conversion for argument 3 from ‘std::__cxx11::string*
{aka std::__cxx11::basic_string<char>*}’
to ‘const string& {aka const std::__cxx11::basic_string<char>&}’
把函数不会改变的形参定义为(普通的)引用【应为const引用】。
1.误导函数可以修改它的实参的值;
2.极大限制函数所能接受的实参类型【不再能接受const对象、字面值、需要类型转换的对象】
//int HttpClientBase::Get(const std::string & strUrl, long & httpCode, const std::string & strPut, std::string & strResponse)
std::string url = "http://192.168.153.128:8020/test/url";
long httpCode = 0;
std::string strPost = " ";
std::string strResponse = " ";
htcli.Get(url,httpCode,strPost,strResponse);
6、 error: ‘sigemptyset’ was not declared in this scope
一般有如下几种可能:
(1).忘记定义
写代码的时候疏忽了,导致一些变量直接使用但没有定义。只要对应定义相应的函数或变量即可。
(2).拼写错误
写代码的时候,敲错了字符,对应修改即可。
(3).作用域不正确
在超出变量和函数的作用域部分使用了该变量或函数。需要通过定义位置,或增加声明的手段,加大变量的作用域使其包含引用位置。
7、no known conversion for argument 2 from ‘BCF::ThreadHandle*’ to ‘BCF::ThreadHandle&’
struct ThreadHandle { pthread_t id; };
错误原因将结构体变量取地址作为引用入参,ThreadSignal::createReactor(sigmap, &tid)。因为它本身就是变量的地址名称,引用做入参不需要取地址。
BCF::ThreadHandle tid;
ThreadSignal::createReactor(sigmap, tid)//正确
8、error: conversion from ‘int’ to non-scalar type ‘sigset_t {aka __sigset_t}’ requested
sigset_t ThreadSignal::mask_ = 0;//error
初始化时没有按照类型初始化,它本身是一个整形数组,正确初始化为:
sigset_t ThreadSignal::mask_ = {0};
9、error: expected primary-expression before ‘bs’
原因是在函数调用时按照声明方式错误调用ReadFile(DABSCPServer bs) 低级错误;
修改后又出现这样的错误declared private here . DABSCPServer(const DABSCPServer& rhs);
查明后发现发现又是类型的问题这里需要传入类类型的指针,正确调用应该如下:
int ReadFile(DABSCPServer* bs);//声明
DABSCPServer bs(tmpSockFd);
ReadFile(&bs);
10、对‘LogInit(char const*, int, LogInitCfg)’未定义的引用
也就是:”XXX“ used but never defined.
原因在于函数被声明后没有实现,如果是系统函数,有可能是未包含头文件。
11、error: inconsistent user-defined literal suffixes ‘devList’ and ‘formatType’ in string literal
原因一般是因为char* 字符串或string定义出错,基本为格式问题注意转义字符和一些特殊字符。