我正在尝试为 JVM 端口编写 Makefile。我已经导出了一个变量,例如 $CROSS_COMPILE=mipsel-linux-
对于具有特定工具链的不同平台,这可能会有所不同。
工具链可以位于不同的位置,但保证位于 PATH 中(例如:/opt/toolchains/mipsel/bin/mipsel-linux-gcc)
我的目标是从我的 make 文件中获取到“opt/toolchains/mipsel/bin/mipsel-linux-”的路径。
我目前的想法是做类似的事情
1) which $(CROSS_COMPILE)gcc ----- 这将返回类似“/opt/toolchains/mipsel/bin/mipsel-linux-gcc”的内容
2) 使用该字符串并从末尾删除 gcc。
我想这应该是可能的。但我不知道如何继续。有关如何开始的指示将不胜感激。
我尝试过“which $(CROSS_COMPILE)gcc”和which ($(CROSS_COMPILE)gcc),两者都不起作用
最佳答案
有很多 GNU Make 函数可以检索目录名称等。
PATHTOTOOLS:=$(dir $(shell which $(CROSS_COMPILE)gcc))
另请注意使用 :=
赋值仅计算一次,从而避免重复运行 which
命令。
关于bash - Makefile 中的脚本通常用于查找工具链的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802247/