Qt 5.4 - Mac OS X 10.6支持

3
我使用Qt 5.3.2在Mac OS X 10.9上编译了我的应用程序,它可以在Mac OS X 10.6上运行而没有任何问题。但是由于Qt 5.3.2中存在一个未解决的bug会导致应用程序在最大化时崩溃(如果焦点在树视图上),因此我不得不转换到Qt 5.4。
在使用Qt 5.4在Mac OS X 10.9上编译我的应用程序后,它无法在Mac OS X 10.6上运行。它会崩溃并出现以下错误:
dyld: library not loaded: /usr/lib/libc++.1.dylib Qt
2个回答

4

经过一番搜索,我发现在Qt官网提供的Qt 5.4二进制文件中不支持在Mac OS X 10.6上运行Qt应用程序。需要进行自定义构建。

根据一些消息来源:

为使clang++生成与llvm-gcc-4.2.1中的g++兼容的二进制文件,请使用以下编译器和链接器标志:-stdlib=libstdc++ -mmacosx-version-min=10.6

这将确保我们使用10.6 CRT进行链接,并且不会链接libc ++(clang ++的默认C ++库)。

进行自定义构建:

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

我花费了大量精力在10.6上构建5.3.2,作为这个努力的一部分,我首先构建了LLVM 3.5,然后使用它来构建libc++和libc++abi,在将这些库放置在/usr/lib。接着,我通过对Qt源代码进行轻微编辑,使用Clang编译器构建出了基于libc++的5.3.2。我预计这个过程的第一部分应该为您提供所需的libc++ dylibs,即使使用Qt 5.4也是如此。 - Iwillnotexist Idonotexist
1
@IwillnotexistIdonotexist 我不是在10.6上进行构建,我只是将10.6作为最低支持版本。 - adnan kamili
但是你不能在10.6上构建这些10.6的libc++并将它们与应用程序一起发布吗?您可以使用install_name_tool将二进制文件和Qt库指向@loader_path/libc++.1.dylib而不是/usr/lib/libc++.1.dylib。但我想,如果您已经成功构建了适用于10.6的5.4二进制文件,那就足够了。 - Iwillnotexist Idonotexist

0

Qt 5.4不再支持10.6版本

即使您使用-no-c++11手动编译,您的应用程序可执行文件也会在10.6上崩溃

5.3.2是最后一个支持-no-c++11的10.6版本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接