gpt4 book ai didi

android - 内核 c 多重函数定义错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:18 26 4
gpt4 key购买 nike

我目前正在尝试为我的 android 设备编译内核不幸的是,我遇到了这个编译错误并坚持了下来

编译器说:

drivers/dpram/built-in.o:(.bss+0x2815c): multiple definition of `pm_dev'
drivers/net/built-in.o:(.bss+0x1ac4): first defined here

在 drivers/dpram.c 中我有:

struct device *pm_dev;

pm_dev = device_create(sec_class, NULL, 0, NULL, "pm");
if(IS_ERR(pm_dev))
pr_err("Failed to create device(pm)!\n");
if(device_create_file(pm_dev, &dev_attr_info) < 0)
pr_err("Failed to create device file(%s)!\n", dev_attr_info.attr.name);
if(device_create_file(pm_dev, &dev_attr_power_down) < 0)
pr_err("Failed to create device file(%s)!\n", dev_attr_power_down.attr.name);

在 drivers/net/wireless/bcmdhd/bcmsdh_linux.c 中我有:

struct device *pm_dev;

if (!device_init_wakeup(dev, 1))
pm_dev = dev;

if (pm_dev) {
device_init_wakeup(pm_dev, 0);
pm_dev = NULL;
}

我目前正在尝试弄清楚,但我还做不到

最佳答案

错误是因为

struct device *pm_dev;

是C语言中的一个定义。它定义了一个指向结构device的指针,它的名字是pm_dev。不允许多次定义变量,因此您应该在所有其他源文件中将 pm_dev 声明为 extern,但只在您实际定义变量的文件中声明它。

声明:

extern struct device *pm_dev;

单一定义:

struct device *pm_dev;

关于android - 内核 c 多重函数定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36372030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com