[求助] 编译问题

czx2014   2015-2-2 17:58 楼主
  @far @interrupt void TIM4IRQHandler(void){
        gg_timer_base++;
        //5ms
        if((gg_timer_base % 5) == 0)
      {
          gg_flag5ms = 1;
      }
        
        
}


#error clnk Debug\safety.lkf:1 symbol c_smodx not defined (Debug\stm8_interrupt_vector.o )
The command: "clnk -m Debug\safety.map -l"C:\Program Files (x86)\COSMIC\CXSTM8_32K\Lib"  -o Debug\safety.sm8 Debug\safety.lkf " has failed, the returned value is: 1
exit code=1.


中断里面加了如上的语句,编译会提示出错。

回复评论 (5)

1 symbol c_smodx not defined (Debug\stm8_interrupt_vector.o ),在工程文件里搜索一下c_smodx,看看在哪出现了。
点赞  2015-2-2 21:04
引用: ienglgge 发表于 2015-2-2 21:04
1 symbol c_smodx not defined (Debug\stm8_interrupt_vector.o ),在工程文件里搜索一下c_smodx,看看在哪出现了。
工程文件里搜索不到这个变量。



点赞  2015-2-3 20:05
c_smodx没有定义,看看是否是上面的变量与c_smodx有关联。。。。。。。。。。。。。
我的博客
点赞  2015-2-4 09:47
引用: zhaojun_xf 发表于 2015-2-4 09:47
c_smodx没有定义,看看是否是上面的变量与c_smodx有关联。。。。。。。。。。。。。
@far @interrupt void TIM4IRQHandler(void)
{
        gg_timer_base++;
        //5ms
        if((gg_timer_base % 5) == 0)
      {
          gg_flag5ms = 1;

      }

}
原先的是这段代码,编译没问题。可是加了20ms的那段,就出现了问题。代码如下:
@far @interrupt void TIM4IRQHandler(void)
{
        gg_timer_base++;
        //5ms
        if((gg_timer_base % 5) == 0)
      {
          gg_flag5ms = 1;

      }
        //20ms
        if((gg_timer_base % 20) == 0)
      {
         gg_flag20ms = 1;
                  }

}



点赞  2015-2-4 13:51
引用: zhaojun_xf 发表于 2015-2-4 09:47
c_smodx没有定义,看看是否是上面的变量与c_smodx有关联。。。。。。。。。。。。。


原因找到了,是这个"%"符号的问题,编译器编译通不过。

点赞  2015-2-5 15:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复