0
我正在用Bazel建立一個基於Tensorflow的Android庫。鏈接器標誌(linkopts)在Bazel中傳播嗎?
這裏BUILD
文件
cc_binary(
name = "libfoo.so",
srcs = glob([
"jni/**/*.cc",
"jni/**/*.h",
]),
copts = [ "-fexceptions", "-DEIGEN_AVOID_STL_ARRAY",
"-mfpu=neon", "-std=c++11",
"-DMIN_LOG_LEVEL=0", "-DTF_LEAN_BINARY",
"-O2", ],
linkopts = [
"-llog",
"-lm",
],
linkshared = 1,
deps = [
"@org_tensorflow//tensorflow/core:android_tensorflow_lib",
"@boringssl//:crypto",
],
)
鏈接器抱怨找不到-lpthread
,雖然我沒有這個標誌添加到linkopts
。
我檢查執行的命令,而事實上有多餘的標誌就可以了:-lz -lpthread ...
哪裏他們來自哪裏嗎?有沒有解決方法?
C++編譯器配置也可以指定鏈接器選項,這可能是在這裏發生的。您是否使用內置的NDK規則將其編譯爲Android?你可以顯示你正在運行的Bazel命令嗎? –
@UlfAdams我已經從你的同事那裏得到了答案。見下面的答案。您可能會在github問題中找到該命令。 –