ubuntu - Linuxでコンパイルする場合のmakefileコンパイルスクリプトとリンカースクリプトldのコードについて
漂亮男人
漂亮男人 2017-06-05 11:10:05
0
1
765

最近、シンプルな x86 オペレーティング システムの実装に関するチュートリアルを読んでいました。Linux システムにあまり詳しくないため、開発環境を構成するときに、スクリプト ファイル、Makefile、リンカー ld を作成する必要があることがわかりました。 「開発で使っています。とても面白かったです。コードが理解できず、どのように扱ったらよいかわかりません。アセンブリ言語の知識や Linux の操作を理解するにはどのような知識が必要かを先輩方に教えていただければ幸いです。」

これは Makefile コードです: ——————————————————————————————

!メイクファイル

C_SOURCES = $(shell find . -name "*.c")

C_OBJECTS = $(patsubst %.c, %.o, $(C_SOURCES))
S_SOURCES = $(shell find . - name "*.s")
S_OBJECTS = $(patsubst %.s, %.o, $(S_SOURCES))

CC = gcc

LD = ld
ASM = nasm

C_FLAGS = -c -Wall -m32 -ggdb -gstabs -nostdinc -fno-builtin -fno-stack-protector -I include

LD_FLAGS = -T scripts/kernel.ld -m elf_i386 -nostdlib
ASM_FLAGS = -f elf -g -F 刺します

すべて: $(S_OBJECTS) $(C_OBJECTS) リンク update_image

.c.o:

リーリー ###。それで:### リーリー ###リンク:### リーリー

.PHONY:クリーン

クリーン:

リーリー

.PHONY:update_image

update_image:

リーリー
.PHONY:マウントイメージ

マウントイメージ:

リーリー
.PHONY:umount_image

umount_image:

リーリー
.PHONY:qemu

qemu:

リーリー
.PHONY:bochs

bochs:

リーリー
.PHONY:デバッグ

デバッグ:

リーリー #——————————————————————————————————————————————————————————————————

これはリンカー コードです:


——————————————————————————————

/*

kernel.ld -- カーネル形式用に書かれたリンク スクリプト*/

    エントリー(開始)
  • セクション

    {
    リーリー

    }
  • #————————————————————————————————————————————————————————————————
漂亮男人
漂亮男人

全員に返信(1)
漂亮男人

これには組み立てを知る必要はありません。 Makefile と ld スクリプトを学ぶ必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート