C 线程创建:错误:‘;中央处理器&x2019;未声明(首次在此函数中使用)
我的C线程有以下问题: 我已经在主文件中包含了cpu.h,为什么这个错误会持续存在 main.cC 线程创建:错误:‘;中央处理器&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
#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*)¶metri_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