C++,C 编译问题汇总(持续更新)

本文汇总了C++和C语言编译过程中遇到的一些典型问题及其解决方案,包括:预定义表达式错误(需移除宏定义后的分号)、找不到标识符(可能因头文件未被正确编译)、未找到符号的定义(可能需要清理解决方案并重新编译)、无法解析的外部符号(不同平台的函数名差异)以及无法生成lib文件(需添加模块定义文件.def)等。了解这些问题及其解决方法有助于提高编程效率。
摘要由CSDN通过智能技术生成
  • expected an expression
    意思:”预定义一个表达式”
    原因:在define block 16 后加上了分号“;”
    解决:在所宏定义的语句后去掉分后“;”

  • 找不到标识符
    意思:没找到对应的函数
    原因:

    1. A调用B的函数,而B的头文件中未声明该函数;
    2. (敲重点):头文件未编译(废话,第一种情况我当然很容易就排查了);
      为什么会没编译呢,原来,我们在编写头文件的时候一般在头文件的开头都会用 #ifndef 和#endif将其包含起来,像这样:
#ifndef 宏1
#define 宏1

#include xxx
void xxx

#endif

这么做的目的是为了避免重复编译,比如我在头文件a.h中加上

#ifndef  A_H //如果没
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值