在任何编程语言上编码时,我们都看到并解决了很多异常情况。未定义的引用是其中的一种,主要发生在C语言中,顾名思义,当脚本中缺少某些函数定义时,就会出现这种情况。因此,这篇文章将给你一些简单的方法来解决这个错误,同时从创建它开始。请确保从Linux系统中登录并打开终端,通过 "Ctrl+Alt+T "的快捷方式开始实施。
注意:我们已经在运行的操作系统中安装了gcc编译器。
例子01:
造成未定义引用错误的常见原因之一可能是某个函数的名称问题。因此,在这个例子中,我们将看到如何使用函数名来产生和解决一个错误。我们将创建一个新的 "exp.c "文件,在shell终端中加入我们的C代码。
$ touch exp.c
该文件已经在主目录下成功创建。为了打开这个文件,我们需要一些编辑器的应用。因此,我们一直在利用Nano编辑器来打开它。
$ nano exp.c
我们的C语言代码保持简单,以方便用户理解。我们在代码的开头包含了一个头文件。之后,定义了一个main()函数,以打印出我们现在一直在进行的主方法。 函数名称的拼写是不正确的。因此,在编译代码时必须显示一个未定义的引用错误。我们已经保存了我们的代码文件并回到了shell。
确保你的Linux系统中配置了一些C语言编译器。我们在这里使用了经久不衰的GCC编译器来编译上述C代码。用GCC编译器编译后,我们得到了预期的main()的未定义引用错误。
$ gcc exp.c
当我们执行该文件时,它说没有这样的文件或目录。
$ ./a.out
让我们更正一下代码,把函数的名字改为main(),如下图所示。
这样,这一次,当你编译和执行该文件时,它将完美地工作,不会出现任何错误,即对一个函数的未定义引用。
$ gcc exp.c
./a.out
例子02:
让我们来看看另一个同样错误的例子。于是,打开同一个文件,添加一个输入输出的标准头。之后,已经声明了一个show()方法的函数原型。最后,main方法被定义为打印一些文本并调用前面声明的函数show()。
在编译时,我们得到的错误是对show()的未定义引用。这是因为show()方法在代码中只被声明,而没有被定义。
$ gcc exp.c
为了解决这个错误,我们再次更新了代码。在main方法之后添加了show()方法的函数定义。这个方法中包含一个打印语句。
当我们编译该文件时,错误被解决了,代码被成功执行。
$ gcc exp.c
./a.out
例子03:
大多数用户在编程时犯的另一个错误是没有注意到语言语法的大小写敏感性。这也可能导致未定义引用的错误发生。所以,让我们在这个例子中看看这个问题。到目前为止,我们使用了同样的代码。我们只是对函数名使用了不同的大小写语法,即show和Show。 函数定义包含小写的名字,而函数调用则包含大写字母。保存这段代码。
使用GCC编译器来编译exp.c文件。错误:对函数show()的未定义引用已经出现在终端外壳上,正如预测的那样。
$ gcc exp.c
要解决这个错误,只需打开文件,使一个函数的名称在其函数定义和函数调用中相同。所以,我们用show(),即小写的名字来进一步。保存这段更新的代码来编译它。
当我们编译这段代码时,最后,它成功地被编译了,没有留下任何错误。因此,这个文件的执行工作正常,如下图所示。
$ gcc exp.c
./a.out
在本指南中,我们看到了用户的一个简单错误是如何导致对一个函数的未定义错误引用发生的。为了解决这个错误,我们在插图中实现了简单的方法,使其得到很好的理解。我们希望这篇文章能最好地满足你的要求。