昨天编译时,看到两个 NDK 构建脚本发出的告警信息:
|
1 2 3 4 |
[crayon-693672e73e6b5371451444 inline="true" ]C/C++: C:/Android/Sdk/ndk/27.0.12077973/build/core/build-binary.mk:418: warning: overriding recipe for target 'C:\code\doom\build\intermediates\cxx\Debug\5523b6rn/obj/local/arm64-v8a/objs-debug/lzma_1.9/C/7zDec.o' C/C++: C:/Android/Sdk/ndk/27.0.12077973/build/core/build-binary.mk:418: warning: ignoring old recipe for target 'C:\code\doom\build\intermediates\cxx\Debug\5523b6rn/obj/local/arm64-v8a/objs-debug/lzma_1.9/C/7zDec.o' C/C++: C:/Android/Sdk/ndk/27.0.12077973/build/core/build-binary.mk:418: warning: overriding recipe for target 'C:\code\doom\build\intermediates\cxx\Debug\5523b6rn/obj/local/arm64-v8a/objs-debug/lzma_1.9/C/7zDec.o.commands.json' C/C++: C:/Android/Sdk/ndk/27.0.12077973/build/core/build-binary.mk:418: warning: ignoring old recipe for target 'C:\code\doom\build\intermediates\cxx\Debug\5523b6rn/obj/local/arm64-v8a/objs-debug/lzma_1.9/C/7zDec.o.commands.json' |
不管是 overriding recipe for target 还是 ignoring old recipe for target,都没看懂是怎么回事。网上搜索到 SO 上的一篇帖子,说的也是含含糊糊,但似乎说到是跟目标重复有关。打开 build-binary.mk 脚本的看第 418 行是没有线索的,于是又去看工程里跟指定的对象 7zDec 相关的 makefile,这下就找到了问题,7zDec.c 这个要编译的源码文件被写了两回,显然就是导致了“overring”以及“ignoring”的“重复”的来源。
