- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个独立的工具链 NDK13b、api19、llvm 3.8 编译器、arm 32 位、带有 libcpp(llvm C++ 库)
我想避免依赖 libgcc,所以我构建了 compiler-rt。我能找到的最好版本(给我留下最少 undefined symbol 的版本)来自 https://android.googlesource.com/platform/external/compiler-rt/
在我的链接行中我有:
-nodefaultlibs
避免链接到 libgcc,并且:
-lc++_static -lc++abi -lunwind -latomic -ldl -lm -lc -landroid -landroid_support -lclang_rt.builtins-arm -latomic
链接到所有标准库。
当我尝试链接我的程序时,我得到以下 undefined reference :
/usr/local/google/buildbot/src/android/ndk-r13-release/external/libcxx/src/algorithm.cpp:83: error: undefined reference to '__sync_val_compare_and_swap_1' /usr/local/google/buildbot/src/android/ndk-r13-release/external/libcxx/src/ios.cpp:74: error: undefined reference to '__sync_val_compare_and_swap_1' /usr/local/google/buildbot/src/android/ndk-r13-release/external/libcxx/src/locale.cpp:53: error: undefined reference to '__sync_val_compare_and_swap_1' /usr/local/google/buildbot/src/android/ndk-r13-release/external/libcxx/src/locale.cpp:464: error: undefined reference to '__sync_val_compare_and_swap_1'
有什么办法可以避免这种情况,例如通过自己定义函数,或者链接一个额外的库?
当我尝试使用来自 here 的代码时(这实际上是用于没有 _1
的 sync_val_compare_and_swap
),我得到:
../lib/builtins/sync_val_compare_and_swap_1.c ../lib/builtins/sync_val_compare_and_swap_1.c:6:16: error: conflicting types for '__sync_val_compare_and_swap_1' inline int32_t __sync_val_compare_and_swap_1(volatile int32_t* ptr, int32_t oldval, int32_t newval)
^
../lib/builtins/sync_val_compare_and_swap_1.c:6:16: note: '__sync_val_compare_and_swap_1' is a builtin with type 'char (volatile char *, char, char, ...)'
最佳答案
问题是我正在链接
中的库link_directories("${COMPILER_PATH}/../arm-linux-androideabi/lib")
有效地存在各种 libatomic.a、libstdc++.a 等。但正确的版本显然在子文件夹 armv7-a 中,所以它应该是:
link_directories("${COMPILER_PATH}/../arm-linux-androideabi/lib/armv7-a")
关于android - 缺少 sync_val_compare_and_swap_1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306175/
我是一名优秀的程序员,十分优秀!