簡體   English   中英

如何從另一個 .c 文件調用函數

[英]How to call a function from another .c file

我編寫了一個程序,在主函數中調用另一個 .c 文件中的函數,但輸出了一個錯誤 undefined reference to 'function_name'。 collect2: 錯誤: ld 返回 1 個退出狀態。 我在Linux命令行編譯程序:gcc -o main.exe main.c ./main.exe

函數文件

#ifndef FUNCS_H_INCLUDED
#define FUNCS_H_INCLUDED

int foo();

#endif

第二個.c

#include <stdio.h>
#include "funcs.h"

int foo(){
  printf("Hello, world!");

return 0;
}

主文件

#include <stdio.h>
#include "funcs.h"

int foo();

int main(){
  foo();

  return 0;
}

如何修復錯誤

你需要編譯所有的c文件,而不僅僅是main.c

gcc -o main.exe main.c second.c

當未檢測到特定功能的符號時,會引發未定義的引用。

在這種情況下,它也可以修復編譯包含該函數的 .c 文件,因此:

gcc -o main.exe main.c second.c

通過這種方式,您將擁有 funcs.c 文件中您調用的函數的符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM