我正在尝试修改makefile以交叉编译二进制文件。有问题的命令如下:
# GNU Make solution makefile autogenerated by Premake
# Type "make help" for usage help
ifndef config
config=debug
endif
export config
PROJECTS := json openjaus openjaus-core openjaus-environment openjaus-mobility openjaus-manipulator openjaus-ugv Base Managed PingTest LargeMessageTest PdDemo GposDemo GposClientDemo StillImageSensorDemo StillImageClientDemo
.PHONY: all clean help $(PROJECTS)
all: $(PROJECTS)
json:
@echo "==== Building json ($(config)) ===="
@${MAKE} --no-print-directory -C .build -f json.make
可以看出,makefile有几个目标。它们都具有与'json'目标相同的结构。有问题的命令是
@${MAKE} --no-print-directory -C .build -f json.make
'$ {MAKE}'变量= make(我已用echo验证了这一点) -C做什么? .build做什么? 我很擅长-f json.make
另外,当我运行make时,json.make文件被创建编译文件并自行删除它,所以我无法访问该文件。
我修改有问题的命令时收到的错误是
==== Building json (debug) ====
make[1]: Nothing to be done for `/home/botbear/openwrt/trunk/staging_dir/toolchain- arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-c++'.
修改后的命令如下:
@${MAKE} /home/botbear/openwrt/trunk/staging_dir/toolchain-arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-c++ --no-print-directory -C .build -f json.make
感谢任何帮助!
答案 0 :(得分:0)
您可以使用man make
了解make
的参数:
-C dir, --directory=dir
Change to directory dir before reading the makefiles or doing any-
thing else. If multiple -C options are specified, each is inter-
preted relative to the previous one: -C / -C etc is equivalent to
-C /etc. This is typically used with recursive invocations of
make.
-f file, --file=file, --makefile=FILE
Use file as a makefile.
所以-C .build
更改了目录.build
。
我不明白你关于修改命令的部分问题。
答案 1 :(得分:0)
尝试找到json.make所在的位置。似乎是makefile创建了&删除你正在谈论的目录。
从命令行看来,将目录更改为.build并执行json.make。不确定json.make是如何结束的。是.build创建然后删除的目录吗?