uchan-nos / mikanos-build

Build and run scripts for MikanOS
Apache License 2.0
307 stars 79 forks source link

zshだと `$CPPFLAGS` が展開されないためコンパイル出来ない. #13

Closed JUNNETWORKS closed 3 years ago

JUNNETWORKS commented 3 years ago

zshの場合デフォルトだと環境変数内の空白が展開されないためコンパイルに失敗します.

$ clang++ $CPPFLAGS -O2 -Wall -g --target=x86_64-elf -ffreestanding -mno-red-zone -fno-exceptions -fno-rtti -std=c++17 -c main.cpp
clang: error: no such file or directory: '    -I/home/jun/osbook/devenv/x86_64-elf/include/c++/v1 -I/home/jun/osbook/devenv/x86_64-elf/include -I/home/jun/osbook/devenv/x86_64-elf/include/freetype2     -I/home/jun/edk2/MdePkg/Include -I/home/jun/edk2/MdePkg/Include/X64     -nostdlibinc -D__ELF__ -D_LDBL_EQ_DBL -D_GNU_SOURCE -D_POSIX_TIMERS     -DEFIAPI='__attribute__((ms_abi))''

bashとzsh変数展開の違い(変数内にある空白での分割について

解決方法としては, 上記のサイトに書いている通り, ${=CPPFLAGS} という風に書くか以下の設定を ~/.zshrc に書き込む必要がありそうです.

setopt SH_WORD_SPLIT

既に自分の方では解決しているのですが, 同じように詰まりそうな人がいそうだなと思いIssueを作成しました. もしかしたらREADMEかどこかに注意書きを書いた方が良いかも知れません.