Android 系統預設的 library 路徑通常會在:
- /system/lib/
- /system/lib64/
- /vendor/lib/
- /vendor/lib64/
可以使用 LD_LIBRARY_PATH 和 LD_PRELOAD 來加入額外的 library。
| Repo: | https://github.com/termux |
|---|---|
| Site: | https://termux.com/ |
Termux 是在 Android 系統上建立 Linux 環境的專案, Termux packages 裡面支援多種常見專案的編譯設定。
- 編譯設定有問題,嘗試連結到 host 上的 library,造成 linker 失敗
- Android 的 bionic libc 沒有 iconv 和 gettext/libintl 支援
- 沒有 SYSV semaphores 支援
- 沒有 SYSV shared memory 支援,但是可以使用 libandroid-shmem ,藉由 Android 的 ashmem 模擬
- Android linker 只支援 PIE (Position Independent Executables) 執行檔
- Jelly Bean 加入 PIE 支援
- Lollipop 移除 non-PIE 支援
- 某些 DT entry 不支援,會造成 linker 在執行期間噴許多 warning,可以用工具幫忙清理 binary