Можно ли программно и кросс-платформенным способом получить список разделяемых библиотек (* .dll, * .so, * .dylib), связанных с текущим процессом?
Например:
vector<string> getLinkedSharedLibraries() {
// ...
}
vector<string> sharedLibraryList = getLinkedSharedLibraries();
for (list<string>::iterator it = sharedLibraryList.begin(); it != sharedLibraryList.end(); ++it)
cout << *it << endl;
который вернется:
/usr/lib/libz.1.dylib
/usr/lib/libSystem.B.dylib
...
Я думал об использовании команд ОС, таких как ldd
в Linux и otool -L
на Mac, а затем использовать [DY]LD_LIBRARY_PATH
для получения абсолютного пути. Но я не нашел похожего способа в Windows.
В качестве альтернативы, существует ли какая-либо существующая библиотека, которая делает такие вещи?