使用makefile编译代码时出现错误.使用控制台工作



在使用控制台构建时看不到的makefile构建我的项目时,我得到编译错误。

我正在使用PowerPC预构建的GNU工具链。

这是我的makefile,

GCC_Assembler = powerpc-eabi-as
GCC_Compiler  = powerpc-eabi-gcc
Directory_Application :=$(argument)/Source_Files
Directory_Bootloader :=$(argument)/Source_Files
Directory_RAMBootloader :=$(argument)/Source_Files
Application_Source_Files := $(wildcard $(Directory_Application)/*.C)
Application_Source_Files_Objecs=$(Application_Source_Files:.C=.O)

default:  Build_Application
all:   Build_Application
Build_Application: $(Application_Source_Files_Objecs)

$(Application_Source_Files_Objecs) : %.O: %.C
$(GCC_Compiler)  -c $<   -o $@ -O1  -Wall -Wfatal-errors

当我尝试使用这些命令构建它时,它没有错误。

CD %WORKSPACE%Source Files
powerpc-eabi-gcc    debug.c       -c -odebug.o    -O1 -Wall -Wfatal-errors
powerpc-eabi-gcc    io.c          -c -oio.o       -O1 -Wall -Wfatal-errors
...
...

所以,当使用makefile构建时,我得到一个没有正确声明的函数的错误。见下图

错误(Makefile)

/Debug.C: infunction 'void display_task_table()':
/Debug.C:627:18: error: 'task_wait' was not declared in this scope
task_wait(100*2);

我只在编译不使用makefile的情况下得到相同函数的警告。

警告(控制台)

Debug.C: in function 'display_task_table':
Debug.c:627:3: warning: implicit declaration of function 'task_wait' [-    Wimplicit-function-declaration]
task_wait(100*2);

我可以通过包括适当的头文件修复错误,但我想知道为什么?

如果我需要添加其他内容请告诉我

好吧,你是使用.C扩展与Makefile编译时,所以编译器是解释文件作为一个c++源文件和在c++中,没有一个原型是一个错误(只有一个警告在C)只是重写行

$(Application_Source_Files_Objecs) : %.O: %.C

$(Application_Source_Files_Objecs) : %.o: %.c

再试一次(不要使用不区分字母大小写的操作系统:)<——>这是一个笑话,请不要火焰)

<标题>编辑

请将指定.C.O文件的所有行也改为.c.o。操作系统不关心字符的大小写,但是make(1)gcc(1)需要。

最新更新