[求助] MDK---真的很纳闷----编译通过,连接不通过!

dontium   2016-12-31 22:31 楼主
使用MDK对STM32F429编程,build或Rebuild,在Compiling时,都通过了,但在Linking时,却提示有未定义的符号,
如: Error: L6218E: Undefined symbol HAL_ADC_ConfigChannel (referred from adc.o).

看看编译:

a1.jpg

再看看连接:
a2.jpg

象HAL_ADC_ConfigChannel这个过程,在stm32f4xx_hal_adc.c.中,且这个文件也在项目中,使用它的文件也包含了头文件,


连接时却一真没能成功!

回复评论 (16)

。。。。。。 本帖最后由 dontium 于 2016-12-31 22:41 编辑
点赞  2016-12-31 22:34
引用: dontium 发表于 2016-12-31 22:34
是不是我的KEIL版本还需要破解呢?

不是,如果没有破解的话,告诉你是license的问题
training
点赞  2016-12-31 22:39
看看是不是存在中文路径或者路径太深
training
点赞  2016-12-31 22:40
引用: 白丁 发表于 2016-12-31 22:40
看看是不是存在中文路径或者路径太深

文件路径指定正确。也没有过多的目录,一般是一级,沿用库的有二级的。
我将例程Build,可以通过,
点赞  2016-12-31 22:42
可能是库错了 ??  把库重新编译使用它的文件也包含了头文件 ?? 本帖最后由 okwh 于 2016-12-31 23:05 编辑
熙熙攘攘的世界,我们不懈前行......
点赞  2016-12-31 22:49
引用: okwh 发表于 2016-12-31 22:49 可能是库错了 ??  把库重新编译使用它的文件也包含了头文件 ??
项目就用这么多文件, a1.jpg 头文件也包含了 后来又整理一下头文件的包含,-------- 把所有用到的头文件放到一个文件中 ---------也不行 /*************************** 下面文件,是不正常的项目 ******************************/
SW_MX.rar (1.37 MB)
(下载次数: 28, 2017-1-1 11:31 上传)
本帖最后由 dontium 于 2017-1-1 11:32 编辑
点赞  2017-1-1 00:26
有可能是没有吧c文件加入工程一起编译
点赞  2017-1-1 01:10
。。。 本帖最后由 freebsder 于 2017-1-1 11:38 编辑
点赞  2017-1-1 01:21
看看头文件的配置文件stm32f4xx_hal_conf.h中有没有使能添加相应模块头文件的宏定义 捕获.PNG
刻苦学习,共同进步
点赞  2017-1-1 01:44
楼上的OK🌹👍
点赞  2017-1-1 10:09
引用: 迈尔风随 发表于 2017-1-1 01:44
看看头文件的配置文件stm32f4xx_hal_conf.h中有没有使能添加相应模块头文件的宏定义

这个文件中的宏定义我也关注了,它是控制头文件的包含的。

后来我看这些宏定义只控制头文件的包含,就将它全部删除了,头文件的包含是直接写上的,不受宏控制。

-------------  纳闷得很。

刚刚用CubeMx又生成了个项目,这次是将库下载到CubeMx下的,生成的项目编译、连接正常

-------原来仅生成必要的文件,库是从其它地方拷贝的。
点赞  2017-1-1 11:02
引用: dontium 发表于 2017-1-1 03:02
这个文件中的宏定义我也关注了,它是控制头文件的包含的。

后来我看这些宏定义只控制头文件的包含,就 ...

库从其他地方拷贝过来,那应该是路径不正确引起的了,解决了就好
刻苦学习,共同进步
点赞  2017-1-1 12:38
看了半天,原来已经解决了呀!学习了
点赞  2017-1-2 22:22
引用: strong161 发表于 2017-1-2 22:22
看了半天,原来已经解决了呀!学习了

问题没有解决,

七楼附件中是不正常的整个项目。

我现在把它扔在一边了,花了好长时间也没解决就不想再找问题了。
点赞  2017-1-3 00:34
引用: dontium 发表于 2017-1-1 00:26
项目就用这么多文件,



头文件也包含了

后来又整理一下头文件的包含,-------- 把所有用到的头 ...

还是把那些宏都加上吧。前几天就告诉你C文件变空了你不信。。。你看看stm32xxx_hal_adc.c里面的代码是不是被 #ifdef 管着的?
默认摸鱼,再摸鱼。2022、9、28
点赞  2017-1-3 01:33
看起来是你的某些头文件包含不对,工程目录下缺少某些头文件。我这边是这样显示的。你应该用的keil4吧

111111111111111111111111.png
点赞  2017-1-3 20:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复