775|4

4578

帖子

3

TA的资源

版主

【正点原子阿尔法 IMX6ULL Linux开发板】解决inline报错问题——LCD测试 [复制链接]

开发板支持RBG屏,今天测试RGB测试时,发现编译报错。

把开发板例程复制到虚拟机,用vscode打开文件夹。执行行make时报错:

bsp/lcd/bsp_lcd.h:85:13: warning: inline function ‘lcd_drawpoint’ declared but never defined
   85 | inline void lcd_drawpoint(unsigned short x,unsigned short y,unsigned int color);
      |             ^~~~~~~~~~~~~
arm-linux-gnueabihf-ld -Timx6ul.lds -o lcd.elf obj/start.o obj/lib1funcs.o obj/main.o obj/ctype.o obj/muldi3.o obj/div64.o obj/string.o obj/vsprintf.o obj/printf.o obj/bsp_clk.o obj/bsp_led.o obj/bsp_delay.o obj/bsp_beep.o obj/bsp_gpio.o obj/bsp_key.o obj/bsp_exit.o obj/bsp_int.o obj/bsp_epittimer.o obj/bsp_keyfilter.o obj/bsp_uart.o obj/bsp_lcd.o obj/bsp_lcdapi.o -lgcc -L /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/4.9.4
arm-linux-gnueabihf-ld: obj/bsp_lcd.o: in function `lcd_fill':
bsp_lcd.c:(.text+0x730): undefined reference to `lcd_drawpoint'
arm-linux-gnueabihf-ld: obj/bsp_lcdapi.o: in function `lcd_drawline':
bsp_lcdapi.c:(.text+0x60): undefined reference to `lcd_drawpoint'
arm-linux-gnueabihf-ld: obj/bsp_lcdapi.o: in function `lcd_draw_Circle':
bsp_lcdapi.c:(.text+0x15a): undefined reference to `lcd_drawpoint'
arm-linux-gnueabihf-ld: bsp_lcdapi.c:(.text+0x176): undefined reference to `lcd_drawpoint'
arm-linux-gnueabihf-ld: bsp_lcdapi.c:(.text+0x188): undefined reference to `lcd_drawpoint'
arm-linux-gnueabihf-ld: obj/bsp_lcdapi.o:bsp_lcdapi.c:(.text+0x19c): more undefined references to `lcd_drawpoint' follow

【问题的原因】

经查找出错原因是:lcd_drawpoint函数没有找到。但是分明函数是已经有建立并且头文件等引用也是正确。经查找原因是由于inline函数与编译器配合不好引起的。

【解决办法】

把inline函数放到头文件中声明。

我们反bsp_lcd.c中的lcd_drawpoint函数放到bsp_lcd.h中定义:

image.png  然后再执行编译就顺利通过:

image.png  【实验结果】下载固件到开发板后,实现如下效果:

image.png   6bac1f9e8de045f1843e33f65d7e4fe.jpg  【总结】gcc编译器版本不同,有时一些特殊的情况,在编写代码时,也需要注意。

此帖出自ARM技术论坛

最新回复

LCD多少米买的啊    详情 回复 发表于 2023-6-9 23:22

回复

5181

帖子

0

TA的资源

五彩晶圆(中级)

原来是inline函数与编译器配合不好

谢谢分享

 

此帖出自ARM技术论坛

点评

感谢关注,这个问题,我原来是mdk上也有遇到过,没有找到方法,这次找到解决问题的方法,特地记录一下。  详情 回复 发表于 2023-6-9 09:56

回复

4578

帖子

3

TA的资源

版主

Jacktang 发表于 2023-6-9 07:34 原来是inline函数与编译器配合不好 谢谢分享  

感谢关注,这个问题,我原来是mdk上也有遇到过,没有找到方法,这次找到解决问题的方法,特地记录一下。

此帖出自ARM技术论坛

回复

6977

帖子

193

TA的资源

五彩晶圆(高级)

LCD多少米买的啊 

此帖出自ARM技术论坛

点评

好象是140那样子吧,相比米尔的良心多了,米尔的我花了600米。  详情 回复 发表于 2023-6-10 07:19

回复

4578

帖子

3

TA的资源

版主

常见泽1 发表于 2023-6-9 23:22 LCD多少米买的啊 

好象是140那样子吧,相比米尔的良心多了,米尔的我花了600米。

此帖出自ARM技术论坛

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表