gcc编译遇到的一些错误(随时补充)

来源:互联网 发布:如龙6 网络聊天 编辑:程序博客网 时间:2024/05/22 00:54

自从用了博客之后,老汉发现这是个好东西啊。再也不用去各个工程项目文件夹下寻找自己做的笔记了。

现在把平时遇到的一些个错误放到上边来,谨防下次再范

  1. 错误: 双目运算符 * 操作数(‘int’和‘int *’)无效

      *n = * n + 1;
      在程序中写了上述代码,编译器将*当作双目运算符,并未当作指针。正确代码如下
       int temp; temp = *n; *n = temp + 1; 

  2. 错误:error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token

    网上有很多人问错误在哪,总结一下几点,希望对大家有帮助
        1 include 前忘记了加上“#”    2 某些关键字书写错误,如“void”(我糊涂地把它写成viod)    3 main前缺少分号‘;’    4 引用了自定义的头文件,在自定义头文件中出现了上述错误
  3. 错误error: expected expression before ‘{’ token

    long a[MAX];a[MAX]={0, 3, 6 ,6};

    问题就出在上述代码上。gcc编译器提示

    error: expected expression before ‘{’ token  a[MAX]={0, 3, 6 ,6};

    高手们肯定不会犯这个错误,新手你看出来了么?正确形式如下
    long a[MAX]={0, 3, 6 ,6};
    原因在于这种数组的缺省初始化需要在定义时进行,或者单独对每个元素赋值。

  4. gcc编译提示:undefined reference to `pow'

    我已经在头文件中引用了,math.h文件,但是依然提示该错误。原因在于使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,程序中用到的数学函数要到这个库文件里找。


configure: error: "flex required in PATH to complete build"


configure: error: "flex required in PATH to complete build"