abseil / abseil/abseil-cpp

Linker error to UnscaledCycleClock on Alpine

未关闭
#1,177 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
C++
星标
18.1k
派生
3.2k
平均合并
20 小时 36 分钟
30 天内合并 PR
1

描述

I'm trying to compile a library on Alpine (musl) which compiles just fine on Ubuntu. I'm getting a linker error as show below, though I cannot relate that to the actual abseil library (I mean any other than libabsl_base.a).

The build fails as follows:
```
testing check_audience_test...
Error loading shared library libjwt_verify.so: No such file or directory (needed by tests/check_audience_test)
Error relocating tests/check_audience_test: _ZNK6google10jwt_verify13CheckAudience19areAudiencesAllowedERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EE: symbol not found
Error relocating tests/check_audience_test: _ZN6google10jwt_verify13CheckAudienceC1ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EE: symbol not found
```

ldd output for my library:
```
alpine:~/jwt_verify_lib# ldd /usr/local/opt/jwt-verify/lib/libjwt_verify.so
/lib/ld-musl-i386.so.1 (0xb7e75000)
libprotobuf.so.29 => /usr/lib/libprotobuf.so.29 (0xb7a35000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7865000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7847000)
libc.musl-x86.so.1 => /lib/ld-musl-i386.so.1 (0xb7e75000)
libz.so.1 => /lib/libz.so.1 (0xb782d000)
Error relocating /usr/local/opt/jwt-verify/lib/libjwt_verify.so: _ZN4absl13base_internal18UnscaledCycleClock3NowEv: symbol not found
Error relocating /usr/local/opt/jwt-verify/lib/libjwt_verify.so: _ZN4absl13base_internal8SpinLock10SlowUnlockEj: symbol not found
Error relocating /usr/local/opt/jwt-verify/lib/libjwt_verify.so: _ZN4absl13base_internal8SpinLock8SlowLockEv: symbol not found
```

Build command:
```
declare -a ABSEIL_LIBS=("${TARGET_INSTALL_DIR}/abseil/lib/libabsl_base.a" "${TARGET_INSTALL_DIR}/abseil/lib/libabsl_time.a" "${TARGET_INSTALL_DIR}/abseil/lib/libabsl_time>

g++ "$1" -Wall -pthread -lgtest_main -lgtest -lpthread -D JWT_LIB_BUILD "$BORINGSSL_LIBSSL" "$BORINGSSL_LIBCRYPTO" \
"${ABSEIL_LIBS[@]}" -L "${JWT_VERIFY_LIB_PATH}" -I"$BORINGSSL_INCLUDE" -I include -I . -lprotobuf \
-ljwt_verify "${ABSEIL_LIBS[@]}" -lstdc++ -lm -std=c++14 $FRAMEWORK -o "$2"
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。