Я работаю над частной платформой для OSX 10.6, которая включает в себя некоторые инструменты командной строки, а также некоторые библиотеки. Теперь для dylib необходимо связать друг с другом, а инструменты командной строки - для dilibs.
Инструменты командной строки и файлы .dylibs находятся в папке Resources
внутри пакета фреймворка. Я использовал install_name_tool
, чтобы обновить все пути до:
@executable_path/../Frameworks/MyCompany.framework/Versions/A/Resources/lib.dylib
Теперь все dylib загружаются корректно при использовании приложением, но инструменты командной строки при запуске завершаются неудачно с dyld: Library not loaded
при запуске следующим образом:
// dylibpath is an NSString set the the path of the Resources folder within the framework
NSTask *task = [[[NSTask alloc]init]autorelease];
[task setEnvironment:[NSDictionary dictionaryWithObjectsAndKeys:@"DYLD_LIBRARY_PATH", dylibPath, nil]];
[task setLaunchPath:binConvert];
[task launch];
[task waitUntilExit];
Теперь я из Windows, где загрузчик найдет библиотеки DLL, если они находятся в той же папке, что и приложение, но, очевидно, OSX ищет полный путь. Как я могу получить инструмент командной строки, чтобы найти dylibs в той же папке?
Спасибо,
J