2014-12-30 4 views
3

Я скомпилировал свое приложение, используя Qt 5.3.2 на своей Mac OS X 10.9, и он работает на Mac OS X 10.6 без каких-либо проблем. Но из-за ошибки в Qt 5.3.2 (незафиксированной), которая приводит к сбою приложений при максимизации, если фокус находится на древовидном представлении, мне пришлось переключиться на Qt 5.4.Qt 5.4 - Mac OS X 10.6 Поддержка

После компиляции моего приложения с использованием Qt 5.4 в Mac OS X 10.9 он больше не работает в Mac OS X 10.6. Он падает с ошибкой:

dyld: library not loaded: /usr/lib/libc++.1.dylib Qt 

ответ

3

После некоторых поисков я понял, что

Запуск Qt приложений на Mac OS X 10.6 не поддерживается Qt 5.4 бинарники на Qt веб-сайта. Для этого требуется настраиваемая сборка.

Согласно одному источнику:

сделать лязг ++ производит двоичные файлы, совместимые с G ++ из LLVM-GCC-4.2.1, использовать этот компилятор и компоновщик флаги: -stdlib = libstdC++ -mmacosx-версию-мин = 10.6

Они свяжутся с 10.6 CRT и что мы не свяжемся с libC++ (библиотека C++ по умолчанию для clang ++).

Для пользовательской сборки:

./configure -prefix $PWD/qtbase -opensource -no-c++11 -debug-and-release -nomake examples -nomake demos 
+0

Я приложил много усилий в строительстве 5.3.2 на 10.6 и в рамках этих усилий я построил я t в режиме C++ 11, сначала создав LLVM 3.5, затем используя его для создания 'libC++' и 'libC++ abi', а затем поместив эти библиотеки в'/usr/lib'. Затем я смог с мягким редактированием источников Qt построить 5.3.2 против 'libC++' с помощью Clang. Я ожидаю, что первая часть этой процедуры даст вам 'libC++' dylibs, которые вам нужно продвигать дальше, даже с Qt 5.4. –

+1

@IwillnotexistIdonotexist Я не строю на 10.6, я просто нацелился на 10.6 как поддерживаемая минимальная версия –

+0

Но не можете ли вы построить эти 10.6 'libC++' 'es и отправить их с помощью приложения на 10.6? Вы можете использовать 'install_name_tool', чтобы двоичные файлы и Qt libs указывали на' @ loader_path/libC++. 1.dylib' в отличие от '/ usr/lib/libC++. 1.dylib'. Но я полагаю, что если вам удалось создать 5.4 двоичные файлы, которые работают для вас в 10.6, этого достаточно. –

1

10,6 больше не поддерживается в Qt 5.4

Если вы даже скомпилировать его вручную с помощью его-C++ 11, приложение в результате исполняемого файла будет врезаться на 10,6

5.3.2 является последним для поддержки 10.6 с ей-C++ 11