0

我需要在一个文件中有几个数组,并且我希望能够从另一个 C 文件访问它。我在头文件中定义了它们,arrays.h然后在arrays.c文件中初始化它们。问题是,当尝试从另一个文件访问数组的索引时,我得到一个unresolved external ... LNK2001 error. 我认为这是因为“arrays.c”文件从未被编译,所以我的程序知道该数组存在,但无法访问它,因为该文件“arrays.c”从未被调用,因此该数组未初始化。

我对吗?有什么办法可以解决这个问题,让源保持原样?

4

1 回答 1

3

如果数组是在 in 中定义的,arrays.c但使用它们的程序是 in program.c,则您需要同时编译arrays.cprogram.c并将目标文件链接在一起。

在类 Unix 系统上,可能是:

cc -o program program.c arrays.c

或者:

cc -c program.c
cc -c arrays.c
cc -o program program.o arrays.o

错误消息看起来很像来自 MSVC 的消息;在这种情况下,您需要遵循适当的规则来实现与 Unix 命令显示的相同的效果。

于 2013-04-20T23:48:56.653 回答