Можно ли программно и кросс-платформенным способом получить список разделяемых библиотек (* .dll, * .so, * .dylib), связанных с текущим обработать?C++: кроссплатформенный способ получения списка разделяемых библиотек
Например:
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.
В качестве альтернативы, существует ли существующая библиотека, занимающаяся такими вещами?
Там нет языка под названием "C/C++", и ваш код C++. Пожалуйста, исправьте свой заголовок. –
Спасибо. Готово. – FabienRohrer
Решения на окнах довольно разочаровывают: http://stackoverflow.com/questions/1993673/what-is-the-equivalent-of-linuxs-ldd-on-windows – FabienRohrer