我尝试在我的项目中使用一些全局变量,但不起作用。我这样声明我的变量:
在文件kernel.h中:
extern DBConnection * conn;在我的另一个名为kernel.c的文件中,我这样做:
#include "kernel.h"
int get_info() {
conn = (DBConnection *) malloc(sizeof(DBConnection));
}但是,在编译时,我收到了一个错误,即:
/home/fastway/VFirewall-Monitor/kernel.c:19: undefined reference to `conn'我做错什么了?
发布于 2013-10-02 20:21:47
您提供了一个声明,但也需要一个定义。将其添加到您的kernel.c中,在包含后的顶部:
DBConnection * conn;发布于 2013-10-02 20:23:24
extern DBConnection * conn;
声明变量而不定义它。
您需要在一个源文件中添加文件范围定义,例如在kernel.c中:
DBConnection * conn;
发布于 2013-10-02 20:23:53
extern不为它限定的变量分配内存,它只允许使用它。您将需要一个没有extern的extern声明。您可以将此添加到内核中:
DBConnection * conn;https://stackoverflow.com/questions/19146116
复制相似问题