编译出错总结

43 篇文章 1 订阅
15 篇文章 0 订阅
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定义出错,基本为格式问题注意转义字符和一些特殊字符。

 

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值