夏阳之光 发表于 2024-1-26 14:46:29

Keil 使用attribute 构建初始化链表

前言:在一个工作区创建两个工程 app 和 base, base 工程生成的 lib 库被 app 工程调用。

程序文件如下图所示:



编译生成如下警告:


这些符号位于文件hwll_list.c 文件中,如下图


如果将文件 list.c 和 hwll_list.c 放到 app 工程下,同时不引用 base 工程的静态库,则不会产生该警告。


夏阳之光 发表于 2024-1-26 14:47:18

如何消除上面的警告信息呀

eric2013 发表于 2024-1-26 15:41:19

仅仅是消除警告吗,如果是消除警告,在Option选项里面屏蔽下即可。

夏阳之光 发表于 2024-1-27 12:42:31

同一工程下,编译生成的 hwll_list$$Base 和 hwll_list$$Limit 这两个全局变量是有地址的;而在两个工程下,引用外部库后,这两个全局变量是没有实际地址,同时也并没有生成全局标号 hwll_list_a 和 hwll_list_b 指针。为啥会有这样的区别。

eric2013 发表于 2024-1-28 09:14:28

夏阳之光 发表于 2024-1-27 12:42
同一工程下,编译生成的 hwll_list$$Base 和 hwll_list$$Limit 这两个全局变量是有地址的;而在两个工程下 ...

没有地址是被优化掉了,或者工程有误。
页: [1]
查看完整版本: Keil 使用attribute 构建初始化链表