Commit c7bd18b9 authored by zhen.jiang's avatar zhen.jiang

解决.a嵌套导致符号找不到的问题

parent 50ad1ae6
...@@ -49,14 +49,27 @@ private fun staticGnuArCommands(ar: String, executable: ExecutableFile, ...@@ -49,14 +49,27 @@ private fun staticGnuArCommands(ar: String, executable: ExecutableFile,
}, },
Command("cmd", "/c", "del", "/q", temp)) Command("cmd", "/c", "del", "/q", temp))
} }
HostManager.hostIsLinux || HostManager.hostIsMac -> listOf( // HostManager.hostIsLinux || HostManager.hostIsMac -> listOf(
Command(ar, "cqT", executable).apply { // Command(ar, "cqT", executable).apply {
+objectFiles // +objectFiles
+libraries // +libraries
}, // },
Command("/bin/sh", "-c").apply { // Command("/bin/sh", "-c").apply {
+"printf 'create $executable\\naddlib $executable\\nsave\\nend' | $ar -M" // +"printf 'create $executable\\naddlib $executable\\nsave\\nend' | $ar -M"
}) // })
HostManager.hostIsLinux || HostManager.hostIsMac -> {
// Create a regular archive and use [L] modifier for adding libraries
// to flatten nested archives. The [L] modifier extracts archive contents
// instead of adding archives as-is, ensuring .a inputs are properly processed.
val commands = mutableListOf<Command>()
if (objectFiles.isNotEmpty()) {
commands.add(Command(ar, "qcs", executable).apply { +objectFiles })
}
if (libraries.isNotEmpty()) {
commands.add(Command(ar, "qsL", executable).apply { +libraries })
}
commands
}
else -> TODO("Unsupported host ${HostManager.host}") else -> TODO("Unsupported host ${HostManager.host}")
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment