我平时创建新的Nios II工程时,都是选择从空模板创建app+bsp工程(图1、图2)。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图1

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图2

有时候,我直接从其他工程里或文件夹复制c,然后直接粘贴到我的app工程里。图3所示的main.c,就是我直接拖过来的。代码(代码1)很简单,但是编译却出现报错(图4)。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图3

代码1 main.c

#include "system.h"
#include "altera_avalon_pio_regs.h"

int main(void)
{
  while(1)
  {
    IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, 0x55);
  }
  return 0;
}

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图4

图4的意思就是讲,我的c没有main()入口。我就奇了怪。双击打开markfile看看,原来的SRCS的列表都是空(图5)。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图5

我把main.c手动加入SRCS列表中。刷新一下工程,发现一个现象(图6),看,main.c左边的图标的右上角的那个圆,亮了;对比一下图3。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图6

我重新编译工程,成功(图7)。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图7

那么如果发现有的c或h文件,没有亮,怎么办呢?

  1. 手动修改makefile;
  2. 单击该文件,在弹出的菜单中,选择Add to Nios II Build(图8)。

[笔记].为何在Nios II SBTE中,直接拖放到工程文件夹的文件,编译会出错? 图8

想要去除不想引用的文件,可单击发亮的c或h文件,选择Remove from Nios II Build。

虽然乏味可陈,但是让我明白了两件事情:

  1. 如果出现图3所示错误,先查看makefile,找找main()所在的文件是否被引用。
  2. 可用手动切换某c或h是否需要引用到工程中。

相关文章:

  • 2021-11-07
  • 2021-11-15
  • 2021-09-20
  • 2021-11-29
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-04-24
猜你喜欢
  • 2022-12-23
  • 2022-01-29
  • 2021-09-06
  • 2021-12-24
  • 2022-01-22
  • 2021-08-07
  • 2022-12-23
相关资源
相似解决方案