Динамические библиотеки Gyp с Qt

Я пытаюсь создать исполняемый файл, который использует Qt в качестве одной из своих зависимостей и gyp в качестве инструмента сборки. Мой проект собирается правильно, но всякий раз, когда я пытаюсь запустить исполняемый файл, я вижу эту ошибку:

dyld: Library not loaded: @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore
Referenced from: /Users/abrarhu/Documents/KRF/build/Pegasus/Pegasus-1.0/RHEL5_64/DEV.STD.PTHREAD/build/bin/mac/./Pegasus
Reason: image not found
Abort trap: 6

Я решил проверить, какие библиотеки используются с помощью otool -Lи это был результат:

/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
@executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtMacExtras.framework/Versions/5/QtMacExtras (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtMultimedia.framework/Versions/5/QtMultimedia (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtMultimediaWidgets.framework/Versions/5/QtMultimediaWidgets (compatibility version 5.4.0, current version 5.4.2)
... other stuff

Я пытался с помощью install_name_tool -change чтобы изменить место нахождения библиотек, но это изменение отменяется, если я очищаю свой проект. Кроме того, это не практично, потому что мне нужно запускать его на всех файлах Qt, которые ссылаются друг на друга (например, QtMacExtras ссылается на QtCore). Вот соответствующие части из моего файла GYP:

'xcode_settings':
{
'VALID_ARCHS': ['i386'],
'GCC_TREAT_WARNINGS_AS_ERRORS' : 'NO',
'FRAMEWORK_SEARCH_PATHS': [ '<(kgyp_repo_dir)/dependency/lib/<(target_os)' ],
}, #xcode_settings

'link_settings':
{
'library_dirs':
[
'<(kgyp_repo_dir)/dependency/lib/<(target_os)',
'<(kgyp_repo_dir)/dependency/lib/<(target_os)/$(CONFIGURATION)',
],

...
libraries : [
'QtCore.framework',
'QtWidgets.framework',
...
]

Я также пытался установить DYLD_LIBRARY_PATH как путем экспорта, так и путем включения его в мой xcode_settingsи ни один из этих вариантов не сработал.

я видел это сообщение пост, который говорит о том, как сказать dyld где найти мои библиотеки, но я не думаю, что это сработает (я уверен, что все вещи будут отменены каждый раз, когда я делаю чистку). Я ищу способ, которым я могу решить эту проблему из самого gyp — который генерирует все мои настройки XCode.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]