【发布时间】:2018-10-15 11:58:51
【问题描述】:
我有一个头文件:headerFiles.h 包含以下外部变量:
extern char *err_msg;
extern char recvbuf[DEFAULT_BUFLEN];
extern char sendbuf[DEFAULT_BUFLEN];
这个头文件包含在:Helper.h中,Helper.h包含在Helper.cpp中,所以,
headerFiles.h --> 包含在 --> Helper.h --> 包含在 --> Helper.cpp
但是当我在 Helper.cpp 文件中引用外部变量时,编译器会给出以下链接错误:
错误 LNK2001 无法解析外部符号“char * err_msg” (?err_msg@@3PADA)
我认为它可以通过命令行编译,但我想知道如何使用 Visual C++ 编译它。我有 VC++ 2017 社区版。 请帮忙。
【问题讨论】:
-
您声明的变量,您是否在任何地方定义它们?在哪个源文件中?你是用那个源文件构建的吗?
-
@Some 程序员老兄,我在 HeaderfFles.h 中添加了三个外部变量,我的目的是将所有外部变量保存在一个位置(即在单独的头文件中)
-
a variable declaration that uses extern and has no initializer is not a definition.这一行解决了一切。
标签: c++ visual-c++ extern