创建库后运行多个文件时遇到问题,在本例中我将其称为“calcola.h”
。
这对我来说似乎没问题,但错误“未定义的错误somma,错误:ld返回1退出状态”
不断出现。 “somma”是我在其中创建函数的文件名,该函数计算两个数字之间的总和。
此时,我尝试通过终端手动运行我的文件:首先,我通过输入 gcc -o main main.c somma.c
创建了 main.exe 文件,然后运行只需键入 main.exe
即可创建 main.exe 文件,并且它运行良好,因此我知道我的代码肯定是正确的。
我已经通过终端检查了编译器是否安装正确,并且我已经将其添加到 PATH 中的环境变量中。 有什么办法可以解决这个问题吗?我已经处理这个问题好几天了,但没有任何结果。有人可以帮助我吗?
最终,此代码对用户输入的两个数字进行求和。
听一下main.c:
#include <stdio.h>
#include "calcola.h"
int main() {
float num1, num2, x;
scanf("%f%f", &num1, &num2);
x = somma(num1, num2);
printf("%f\n", x);
getchar();
}
这是标题,calcola.h:
float somma(float, float);
这是函数,somma.c:
#include <stdio.h>
#include "calcola.h"
float somma(float a, float b) {
return a + b;
}
最佳答案
我查看了您的问题。接下来的评论几乎总结了我的建议,即选择和使用与您正在编码的平台兼容的 IDE。为了让这些评论所说的内容更清楚一些,下面是一些图像,显示了使用头文件和上面使用“Code::Blocks”记下的两个源代码文件构建项目。
与其他开发平台(例如“Visual Studio”等)一样,通常提供一种在项目中添加和关联各种头文件和源文件的方法,并允许关联任何自定义库,以便开发人员然后,应用程序将执行所需的编译和链接以生成最终应用程序代码。
以您的代码为例,以下是向项目添加补充头文件和/或补充源代码文件的示例选择。
生成项目文件的目录结构。
一旦项目所需的所有文件都关联起来,就可以通过编译和链接来构建所需的程序文件。
测试您的代码会在终端窗口中产生以下输出。
craig@Vera:~/C_Programs/Console/Cola/bin/Release$ ./Cola
2.333 4.555
6.888000
可以肯定的是,这并不是提倡一种 IDE 优于另一种 IDE,而只是一个 IDE 如何帮助您更轻松地编码的直观示例。
关于c - 对函数的 undefined reference ,但已全部定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76843376/