dladdr не возвращает полный путь в dli_fname
Я использую dladdr, чтобы получить полный путь к библиотеке:
Dl_info dl_info;
int ret = dladdr((void*)&func, &dl_info);
if (ret)
// use dl_info.dli_fname;
Работает нормально. Однако, если я переименую папку со сборкой (и затем запустлю снова), dli_fname не будет содержать полный путь, только имя файла библиотеки. Это почему?
Есть и другие шаги, кроме переименования папки сборки (разное. Cmake изменения, в основном связанные с функциональностью установки), но тем не менее проблема возникает только после переименования (т.е. приложение запускается не из папки сборки).
0 ответов
dl_info.dli_fname не всегда содержит полный путь в Android ( см. здесь)
Это обходной путь в этом случае: см. Мой ответ