From 2b387d2a1c8b92e586527d2f7cee98cd316827b7 Mon Sep 17 00:00:00 2001 From: HuiYuanXin13 <150512100+HuiYuanXin13@users.noreply.github.com> Date: Wed, 20 Aug 2025 21:42:29 +0800 Subject: fix: android ndk rust link-args MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复了这样的问题:使用android ndk构建rust源码时,rustc不会将link-args="..."的等号之后的引号特殊处理,导致传递给clang++类似'"-llog'的错误的参数。 --- xmake/toolchains/ndk/load.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index 22b7aa658..faa22c5a0 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -377,8 +377,10 @@ function main(toolchain) table.insert(rcshflags, "-l" .. link) table.insert(rcldflags, "-l" .. link) end - toolchain:add("rcshflags", "-C link-args=\"" .. (table.concat(rcshflags, " "):gsub("%-march=.-%s", "") .. "\"")) - toolchain:add("rcldflags", "-C link-args=\"" .. (table.concat(rcldflags, " "):gsub("%-march=.-%s", "") .. "\"")) + -- fix [[note: clang++: error: no such file or directory: '"-llog']] on windows + -- @note 'link-args=...' should not be 'link-args="..."' + toolchain:set("rcshflags", {"-C", "link-args=" .. (table.concat(rcshflags, " "):gsub("%-march=.-%s", ""))}, {expand=false}) + toolchain:set("rcldflags", {"-C", "link-args=" .. (table.concat(rcldflags, " "):gsub("%-march=.-%s", ""))}, {expand=false}) local sh = toolchain:tool("sh") -- @note we cannot use `config.get("sh")`, because we need to check sh first if sh then toolchain:add("rcshflags", "-C linker=" .. sh) -- cgit v1.3.1