OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4188|回复: 6

关闭库文件制作不能动态配置的问题

[复制链接]

4

主题

13

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-4-5
在线时间
5 小时
发表于 2021-9-27 17:34:38 | 显示全部楼层 |阅读模式
大佬们:请教下大家一个问题。想制作一个库文件,用.h文件配置,比如.h中定义 #define USE1
.c中程序如下:

#ifdef USE1
void function(void)
{
      printf("1\r\n");
}
#else
void function(void)
{
      printf("2\r\n");
}

#endif
这么写后制作库文件后添加到工程中使用,把//#define USE1屏蔽掉,执行的代码还是printf("1\r\n");,就是说制作库的时候库里面的代码已经固定了,不能动态的去配置他们,有没有办法能动态的配置呢?感谢!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-9-28 10:06:24 | 显示全部楼层
本帖最后由 bin133 于 2021-9-28 10:09 编辑

类似于结构体那种方式
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-4-5
在线时间
5 小时
 楼主| 发表于 2021-9-28 10:26:37 | 显示全部楼层
bin133 发表于 2021-9-28 10:06
类似于结构体那种方式

实现不了啊
回复 支持 反对

使用道具 举报

3

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
559
金钱
559
注册时间
2018-10-3
在线时间
107 小时
发表于 2021-9-28 10:35:24 | 显示全部楼层
#define USE1 1
#if USE1
void function(void)
{
      printf("1\r\n");
}
#else
void function(void)
{
      printf("2\r\n");
}
#endif

这样?
#define USE1 1 打印1     
#define USE1 0  打印2
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-4-5
在线时间
5 小时
 楼主| 发表于 2021-9-28 13:30:00 | 显示全部楼层
我试了一下这样也不行,假如编译库的时候#define USE1 1 打印1 ,库生成后配置#define USE1 0  打印2,打印的结果还是1。
回复 支持 反对

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2021-9-28 17:41:54 | 显示全部楼层
用宏是不行的了,静态库已经编译好了,只是链接而已,尝试通过静态库中一个变量判断实现吧
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-4-5
在线时间
5 小时
 楼主| 发表于 2021-9-28 18:18:15 | 显示全部楼层
a5820736 发表于 2021-9-28 17:41
用宏是不行的了,静态库已经编译好了,只是链接而已,尝试通过静态库中一个变量判断实现吧

用宏的话好多地方就比较规范
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 04:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表