sách gpt4 ai đã đi

编译 : undefined reference to

In lại 作者:行者123 更新时间:2023-12-04 05:07:19 30 4
mua khóa gpt4 Nike

我正在努力将多个文件编译成一个通用程序。我收到一个错误:

undefined reference to 'pi'



这是我的代码和 Makefile 的框架。我做错了什么?谢谢!

文件:calcPi.c
#include 
#include
#include
#include

#include "pi.h"

int main(int argc, char* argv[]) {
long iterations = 1000000;
int policy = 2;
int numChildren = 3;
pi(iterations, policy, numChildren);
trả về 0;
}

文件:pi.h
void pi(long iterations, int policy, int numChildren);

文件:pi.c
#include "pi.h"

void pi(long iterations, int policy, int numChildren) {
//lots of code here
}

我正在使用 Makefile 编译它:
CC = gcc
CFLAGS = -c -g -Wall -Wextra
LFLAGS = -g -Wall -Wextra

all: calcPi pi

calcPi: calcPi.o
$(CC) $(LFLAGS) $^ -o $@ -lm

pi: pi.o
$(CC) $(LFLAGS) $^ -o $@ -lm

calcPi.o: calcPi.c
$(CC) $(CFLAGS) $<

pi.o: pi.c
$(CC) $(CFLAGS) $<

clean:
rm -f pi calcPi
rm -f *.o
rm -f *~

编辑:响应对整个错误消息的请求:

在函数‘main’中”
calcPi.c:55: 对 'pi' 的 undefined reference
collect2: 错误: ld 返回 1 个退出状态
制作:* [calcPi.o] 错误 1

1 Câu trả lời

首先是真的应该是一个单独的应用程序吗?

您指的是 中的 pi() 函数calcPi ,但它只被编译成 pi.o ,因此您需要将其添加为依赖项。

我认为你想做的,是创建 calcPi sử dụng calcPi.o pi.o 目标文件。

CC = gcc
CFLAGS = -c -g -Wall -Wextra
LFLAGS = -g -Wall -Wextra

all: calcPi

calcPi: calcPi.o pi.o
$(CC) $(LFLAGS) $^ -o $@ -lm

calcPi.o: calcPi.c
$(CC) $(CFLAGS) $<

pi.o: pi.c
$(CC) $(CFLAGS) $<

clean:
rm -f calc
rm -f *.o
rm -f *~

关于编译 : undefined reference to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370214/

30 4 0
Bài viết được đề xuất: bash - 每次打开终端时如何删除这个 [Bash]?
Bài viết được đề xuất: SQL ORDER BY GROUP BY
Bài viết được đề xuất: sql - 带走 EXISTS 但留在开关中
Bài viết được đề xuất: google-sheets - 计算多列中单词的出现次数
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com