调用另一个文件中定义的 C 函数

标签 c file function

我知道这个问题有很多答案,但我总是在 gcc c1.c 上遇到错误

c1.c:(.text+0x5): undefined reference to `f'
collect2: error: ld returned 1 exit status

无论我尝试什么。

这是c1.c

#include <stdio.h>

#include "c.h"

int main()
{
    printf("F %d\n",f());
}

这是 c2.c

#include <stdio.h>

int f(void) {return 7;}

int main()
{
    printf("S %d\n",f());
}

这是ch.h

int f(void);

我怎样才能让它工作?实际上,我在一个像这样建模的大程序中遇到了这个错误。我想这就是这样做的方法。 (是的,main 应该返回 0)。

最佳答案

您将会遇到问题,因为您定义了两个不同的 main 函数,但执行此操作的一般方法是链接时问题:

gcc -c c1.c
gcc -c c2.c
gcc c1.o c2.o

您需要做的就是找出您想要的主要内容,然后删除不需要的内容。

你可以这样做:

gcc -Dmain=blah -c c1.c
gcc -c c2.c
gcc c1.o c2.o

关于调用另一个文件中定义的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606202/

相关文章:

c - 如何从 C 语言的文件中逐行读取每行两个字符串

java - StringTokenizer 使用

java - 使用 Java 应用程序打开文件

java - 流处理 - 按名称在给定目录中搜​​索文件/目录

php - 将 PHP 写入 Javascript 或将 Javascript 写入 PHP

更改 C 结构中矩阵的内容

c - 在 C 中返回数组和指针?

Python - 将函数传递给其他函数

jquery - 在另一个函数中调用一个函数 (function($) {}

c - 即使在具有正确的目标输入值后,if 语句也会产生错误行为