stm32的一个函数编译成lib后, 头文件里面预定义的内容不生效

2019-12-27 19:02发布

因为这个文件不想提供源代码给客户,所以想编译成库,有个参数客户想自己可以调整。
所以我就写成这样
#if defined(LIGHT_DELAY) && (LIGHT_DELAY > 0)
                #if LIGHT_DELY > 100
                udelay(100);
                #else
                udelay(LIGHT_DELAY);
                #endif
                LED_EN_L();
        #endif

然后在h文件里面预定义了这个
#define LIGHT_DELAY        100

在c文件里面写出来后执行得很正常,结果编译成lib后,这段话运行不正常了。这真是出了鬼了,有点搞不懂这是咋回事了。求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
vows
1楼-- · 2019-12-27 20:40
宏定义只在编译时起作用,编译后的lib需要用局部变量/全局变量来存参数。
zstein
2楼-- · 2019-12-28 00:46
怎么个不正常法?
foxpro2005
3楼-- · 2019-12-28 02:50
 精彩回答 2  元偷偷看……
湛无双
4楼-- · 2019-12-28 07:33
参考emwin中是怎么改分辨率的
honami520
5楼-- · 2019-12-28 12:16
vows 发表于 2017-5-23 01:45
宏定义只在编译时起作用,编译后的lib需要用局部变量/全局变量来存参数。

多谢兄弟告知原因。分给你了。

一周热门 更多>