Я строю библиотеку Android, основанную на Tensorflow с Bazel.Являются ли линкерные флаги (linkopts) распространенными в Базеле?
Здесь 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. –