mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-18 20:36:31 +00:00
🔧 修改为makefile的构建方式,程序能正常运行
This commit is contained in:
@ -1,18 +0,0 @@
|
||||
|
||||
|
||||
#修改输出的路径
|
||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/kernel)
|
||||
# 添加汇编包含目录(当前文件夹)
|
||||
add_compile_options(-I ${CMAKE_CURRENT_SOURCE_DIR}/ )
|
||||
|
||||
add_library(${PROJECT_NAME}-arch
|
||||
head.S
|
||||
main.c)
|
||||
add_executable(kernel.bin
|
||||
head.S main.c)
|
||||
set_property(
|
||||
TARGET kernel.bin
|
||||
PROPERTY
|
||||
DEPENDS
|
||||
"link.lds"
|
||||
)
|
19
kernel/Makefile
Normal file
19
kernel/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
all: kernel
|
||||
objcopy -I elf64-x86-64 -S -R ".eh_frame" -R ".comment" -O binary kernel ../bin/kernel/kernel.bin
|
||||
|
||||
|
||||
kernel: head.o main.o
|
||||
ld -b elf64-x86-64 -o kernel head.o main.o -T link.lds
|
||||
|
||||
main.o: main.c
|
||||
# -fno-builtin: 不使用C语言内建函数
|
||||
# The -m64 option sets int to 32bits and long and pointer to 64 bits and generates code for AMD’s x86-64 architecture.
|
||||
gcc -mcmodel=large -fno-builtin -m64 -c main.c
|
||||
|
||||
head.o: head.S
|
||||
gcc -E head.S > head.s # 预处理
|
||||
as --64 -o head.o head.s
|
||||
|
||||
clean:
|
||||
rm -rf *.o *.s~ *.s *.S~ *.c~ *.h~ kernel
|
@ -1,17 +1,3 @@
|
||||
/***************************************************
|
||||
* 版权声明
|
||||
*
|
||||
* 本操作系统名为:MINE
|
||||
* 该操作系统未经授权不得以盈利或非盈利为目的进行开发,
|
||||
* 只允许个人学习以及公开交流使用
|
||||
*
|
||||
* 代码最终所有权及解释权归田宇所有;
|
||||
*
|
||||
* 本模块作者: 田宇
|
||||
* EMail: 345538255@qq.com
|
||||
*
|
||||
*
|
||||
***************************************************/
|
||||
|
||||
OUTPUT_FORMAT("elf64-x86-64","elf64-x86-64","elf64-x86-64")
|
||||
OUTPUT_ARCH(i386:x86-64)
|
||||
|
@ -4,8 +4,5 @@
|
||||
|
||||
void Start_Kernel(void)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
|
||||
};
|
||||
while(1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user