C 线程创建:错误:‘;中央处理器&x2019;未声明(首次在此函数中使用)

C 线程创建:错误:‘;中央处理器&x2019;未声明(首次在此函数中使用),c,multithreading,C,Multithreading,我的C线程有以下问题: 我已经在主文件中包含了cpu.h,为什么这个错误会持续存在 main.c #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #incl

我的C线程有以下问题: 我已经在主文件中包含了cpu.h,为什么这个错误会持续存在

main.c

#include <stdio.h>                      
#include <sys/types.h>                      
#include <sys/stat.h>                       
#include <fcntl.h>                      
#include <unistd.h>                         
#include <string.h>                         
#include <stdlib.h>                         
#include <pthread.h>

#include "funzioni.h"
#include "ram.h" 
#include "cpu.h" 
#include "err.h"
......
......
rc = pthread_create (&threads[i] , NULL ,cpu, (void*)&parametri_thread_cpu[i] );
我的Makefile

# Sources
SRCS= err.c funzioni.c cpu.c ram.c main.c
OBJS=$(SRCS:.c=.o)
EXECUTABLE=main.x

# Config
CC=gcc
CFLAGS= -c
LIBS= -lpthread
LD=gcc

# Target

all: clean $(EXECUTABLE)


clean:
@echo Cleaning old files
@rm -f *.o *.x

$(EXECUTABLE): $(OBJS)
@echo -------------Building $@
@ $(LD) -o $@ $^ $(LIBS)

err.o: err.c err.h
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $<  

funzioni.o: funzioni.c funzioni.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

cpu.o: cpu.c cpu.h funzioni.h err.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

ram.o: ram.c ram.h funzioni.h err.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

main.o: main.c ram.h cpu.h funzioni.h err.h  
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

.PHONY: all clean
#来源
SRCS=err.c funzioni.c cpu.c ram.c main.c
OBJS=$(SRCS:.c=.o)
可执行文件=main.x
#配置
CC=gcc
CFLAGS=-c
LIBS=-lpthread
LD=gcc
#目标
全部:干净$(可执行)
清洁:
@回显清理旧文件
@rm-f*.o*.x
$(可执行文件):$(OBJS)
@回声大厦$@
@$(LD)-o$@$^$(LIBS)
错误o:错误c错误h
@回声大厦$@
@$(CC)$(CFLAGS)-o$@$<
funzioni.o:funzioni.c funzioni.h
@回声大厦$@
@$(CC)$(CFLAGS)-o$@$<$(LIBS)
o:cpu.cpu.h funzioni.h err.h
@回声大厦$@
@$(CC)$(CFLAGS)-o$@$<$(LIBS)
ram.o:ram.c ram.h funzioni.h err.h
@回声大厦$@
@$(CC)$(CFLAGS)-o$@$<$(LIBS)
main.o:main.cram.h cpu.h funzioni.h err.h
@回声大厦$@
@$(CC)$(CFLAGS)-o$@$<$(LIBS)
.骗子:都是干净的

这是我编译代码的makefile

您已经从另一个include文件“funzioni.h”复制了include-guard


将其更改为
CPU\u H
或类似的设置。

我想CPU.H
\ifndef FUNZIONI\u H
中的include-guard已经在其他地方定义了。

如果真的包含它,就不会发生这种情况。发布所有相关代码以及如何编译它们。我在main.c#include“cpu.h”中有include。。对于编译,我有一个Makefiles如何告诉我们makefile中有什么,显示您用来调用它的内容,并显示include-所有这些内容都应该编辑到您的答案中。添加我的代码的makefile
# Sources
SRCS= err.c funzioni.c cpu.c ram.c main.c
OBJS=$(SRCS:.c=.o)
EXECUTABLE=main.x

# Config
CC=gcc
CFLAGS= -c
LIBS= -lpthread
LD=gcc

# Target

all: clean $(EXECUTABLE)


clean:
@echo Cleaning old files
@rm -f *.o *.x

$(EXECUTABLE): $(OBJS)
@echo -------------Building $@
@ $(LD) -o $@ $^ $(LIBS)

err.o: err.c err.h
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $<  

funzioni.o: funzioni.c funzioni.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

cpu.o: cpu.c cpu.h funzioni.h err.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

ram.o: ram.c ram.h funzioni.h err.h 
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

main.o: main.c ram.h cpu.h funzioni.h err.h  
@echo -------------Building $@
@ $(CC) $(CFLAGS) -o $@ $< $(LIBS)

.PHONY: all clean