【发布时间】:2020-04-02 02:39:15
【问题描述】:
我就这样在 VSCODE 上写了一些 C 代码。
代码在同一个项目文件夹中分为三个文件:头文件、函数文件和主文件。 但是当我开始编译时,文件无法编译并出错。像终端文本。
也许我认为这个错误是链接错误.. 如何解决这个问题..?
[源代码]
mysqrt.c
#include "mysqrt.h"
#include <stdio.h>
#include <math.h>
double mysqrt(double a, double b){
double result = sqrt(pow(a,2)+pow(b,2));
return result;
}
mysqrt.h
#include <stdio.h>
double mysqrt(double a, double b);
mysqrtTest.c
#include <stdio.h>
#include <math.h>
#include "mysqrt.h"
void main(void){
double sum = mysqrt(3,4);
printf("%.2f\n",sum);
}
[终端文本]
/Users/kim_donggyun/Desktop/My File/MyFile/VSCodeWorkFolder/2019_2_finalExam/mysqrtTest.c:5:1: warning:
return type of 'main' is not 'int' [-Wmain-return-type]
void main(void){
^
/Users/kim_donggyun/Desktop/My File/MyFile/VSCodeWorkFolder/2019_2_finalExam/mysqrtTest.c:5:1: note: change
return type to 'int'
void main(void){
^~~~
int
1 warning generated.
Undefined symbols for architecture x86_64:
"_mysqrt", referenced from:
_main in mysqrtTest-45c3c1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[操作系统]:macOS Mojave 10.14.6
【问题讨论】:
-
不要使用代码图片 - 将代码作为文本包含在问题中。同样,不要使用错误消息的图片(尽管您似乎也在问题中包含了编译错误消息)。
-
您好,欢迎来到stackoverflow,您最好将代码直接放入问题中,而不是放入图像。
-
需要在同一命令行中编译
mysqrtTest.c和mysqrt.c。 -
代码和错误信息的图像对我们来说毫无用处。请参阅this Meta post 了解众多原因的列表。代码和错误是文本,可以直接复制/粘贴到您的帖子中。如果您花一些时间在tour 和阅读help center 页面以了解该网站的工作原理,然后再发布,您会发现您在这里的体验会好很多。
-
需要在数学库中链接。
标签: c macos visual-studio-code compiler-errors