W2656354603 2024-03-21 12:51 采纳率: 28.6%
浏览 15

有人帮我看看为什么我的DevC不能编译这个跨文件的main吗?

三个文件放在一个文件夹“max”中,然后两个是.c文件,一个是.h文件,具体内部代码如下。编译的时候,系统报错,想知道错误在哪?怎么才能在一个函数中调用其他源文件中的代码和函数??

img

img

img

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-21 12:51
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 该问题需要分成两个部分解决:
    1. 编译时报错,需要查看并解决错误。
    2. 如何在一个函数中调用其他源文件中的代码和函数。 解决步骤:
    3. 首先打开终端,进入max文件夹,使用命令行编译.c文件: gcc -c max.c gcc -c main.c gcc -o max max.o main.o 这样就可以生成可执行文件max。在编译的过程中,如果出现错误信息,需要根据错误提示进行修改。例如,如果提示“error: implicit declaration of function 'add' is invalid in C99”,说明max.c中的add函数没有声明,需要在max.h中声明一下。
    4. 要在一个函数中调用其他源文件中的代码和函数,需要包含相应的头文件,并在链接时将需要的源文件编译成目标文件一起链接。例如,在main.c中调用max.c中的函数add,需要在main.c中包含max.h头文件,并在链接时将max.o文件一起链接: #include "max.h" int main() { int a = 1, b = 2; int c = add(a, b); printf("The max value is: %d\n", c); return 0; } gcc -c max.c gcc -c main.c gcc -o max max.o main.o 编译链接完成后,运行./max即可得到结果。
    评论

报告相同问题?

问题事件

  • 创建了问题 3月21日