在Makefile

时间:2017-02-28 19:34:08

标签: linux bash makefile cd subshell

所以我正在编写一些汇编代码,然后由Makefile编译:

# linking
main: main.o #
    ld -o build/main build/main.o -melf_i386
# compiling
main.o: main.s #
    as -o build/main.o main.s --32

我不得不添加构建目录,因为我经常将代码推送到我的GitHub存储库,而且有点难以.gitignore linux可执行文件。现在我知道,我可以在Makefile中执行bash命令。 F.e我测试了类似bash -c "pwd"的东西,是的,它打印了我当前的工作目录。我想要实际做的是在编译后立即跳转到构建目录。所以我写了这样的Makefile:

# linking
main: main.o #
    ld -o build/main build/main.o -melf_i386
    bash -c "cd ~/Desktop/asm/build"
# compiling
main.o: main.s #
    as -o build/main.o main.s --32

输出结果为:

[frynio@manjaro asm]$ make
as -o build/main.o main.s --32
ld -o build/main build/main.o -melf_i386
bash -c "cd ~/Desktop/asm/build"
[frynio@manjaro asm]

因为您可以看到它没有更改目录(仅使用相对build路径尝试,但也不起作用)。我怎样才能使它发挥作用?

0 个答案:

没有答案