Как сообщить macOS-приложению использовать определенную структуру [duplicate]

Связанный .lib-файл связан с .dll

У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.

Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.

2
задан Niklas 28 November 2013 в 18:24
поделиться

1 ответ

Вам нужно скопировать фреймворки в свой пакет приложений и изменить ссылки на рамки Qt. OSX имеет средство разработки, называемое install_name_tool, которое позволяет вам вручную изменять ссылки.

К счастью, Qt предоставляет инструмент командной строки macdeployqt, который скопирует необходимые рамки Qt и изменит ссылки для вас.

Вы можете прочитать об этом в документах Qt для развертывания приложения Qt для OSX . Это очень просто использовать. Предполагая, что ваш путь настроен на включение инструментов Qt, просто вызовите это из пути к вашему приложению: -

macdeployqt MyApp.app

Если вы используете другие рамки, отличные от Qt, вам придется вручную их скопировать и используйте для этого install_name_tool.

3
ответ дан TheDarkKnight 25 August 2018 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: