[英]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.