无敌地中海 2023-02-13 21:10 采纳率: 0%
浏览 42

C无法调用其他文件函数

C语言无法调用外部函数

主文件与需要用到的文件已放入同一文件夹中,不管是直接引用函数还是写入了头文件再引用,都无法调用。运行主文件hello.h时返回的错误信息是未找到该函数,运行其他文件的头文件时有返回无法运行的错误。

主文件
//文件名为hello.c
#include<stdio.h>
#include"print.h"
int main(){
    int a=10;
    int print(int q);
    print(a);
    return 0;
}

同一文档中其他.c文件
//print.c
#include<stdio.h>
#include"print.h"
int main(){}
int print(int q){
    printf("%d\n",q);
    return;
}

其他.c文件的头文件
//print.h
#ifndef print_h
#define print_h
#include<stdio.h>
int print(int q);
#endif

错误信息
//主文件返回
C:\Users\86136\AppData\Local\Temp\cc30QyLn.o:Hello.c:(.text+0x21): undefined reference to `print'
collect2.exe: error: ld returned 1 exit status

//print.h头文件返回错误
程序“print.exe”无法运行: 指定的可执行文件不是此操作系统平台的有效应用程序。所在位置 行:1 字符: 63
+ ...  "c:\train\" ; if ($?) { gcc print.h -o print } ; if ($?) { .\print }
+                                                                 ~~~~~~~。
所在位置 行:1 字符: 63
+ ...  "c:\train\" ; if ($?) { gcc print.h -o print } ; if ($?) { .\print }
+                                                                 ~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed
  • 写回答

3条回答 默认 最新

  • 喝雪碧要加盐 2023-02-13 21:35
    关注

    print.c 里的 main 函数删掉, 因为 print.c 不是独立运行的,而是最后和你的主函数 hello.c 一起运行的,程序只能有一个 main 函数;
    检查一下之前是否有写过 print_h。 如果之前有其他的头文件也写 #define 过 print_h,就不会再执行这个print.h文件了;
    可能.h文件损坏了吧,要不移除重写下;

    ---------------------------------------下面是一点题外话。
    print.c 的返回类型应该是 void ,上面有报了个错误。
    print.h 里包含了 stdio.h 其他文件就可以不用包含了。 望采纳

    评论

报告相同问题?

问题事件

  • 创建了问题 2月13日

悬赏问题

  • ¥15 结构功能耦合指标计算
  • ¥20 visual studio中c语言用ODBC链接SQL SERVER
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询