最近搞一个ohos二进制编译,依赖一个静态库,编译参数添加如下:
ldflags =[ "-static" ]
然后编译死活报错:
[OHOS ERROR] clang-15: error: argument unused during compilation: '-pie' [-Werror,-Wunused-command-line-argument]
原因:
if (defined(invoker.static_link) && invoker.static_link) {
……
configs -= [ "//build/config:executable_config" ]
ldflags += [ "-static" ]
……
}
编译系统会默认带上pie参数
config("executable_config") {
configs = []
if (!is_mac) {
if (!is_mingw) {
cflags = [ "-fPIE" ]
asmflags = [ "-fPIE" ]
……
}
……
}
}
就是说手动在ldflags里添加-static是不行的,根据提示,只需要添加
static_link = true 参数即可