在Mac OS X 10.8.5版上编译qt 4.8.6源代码时出现以下错误。
看起来某些与平台相关的标志未启用。
In file included from text/qfontengine_coretext.mm:42:
text/qfontengine_coretext_p.h:64: error: expected `)' before‘font’
text/qfontengine_coretext_p.h:65: error: expected `)' before‘font’
text/qfontengine_coretext_p.h:93: error: ‘CGContextRef’ has not
been declared
text/qfontengine_coretext_p.h:111: error: ‘CTFontRef’ does not
name a type
text/qfontengine_coretext_p.h:112: error: ‘CGFontRef’ does not
name a type
text/qfontengine_coretext_p.h:114: error: ‘CGAffineTransform’ does
not name a type
text/qfontengine_coretext_p.h:122: error: expected ‘,’ or ‘...’
before ‘&’ token
text/qfontengine_coretext_p.h:122: error: ISO C++ forbids
declaration of ‘QCFString’ with no type
text/qfontengine_coretext_p.h:123: error: expected `)' before
‘ctFontRef’
text/qfontengine_coretext_p.h:134: error: ‘CTFontRef’ does not
name a type
text/qfontengine_coretext_p.h:144: error: ‘CTFontRef’ has not been
declared
text/qfontengine_coretext_p.h:145: error: ‘CTFontRef’ does not
name a type
text/qfontengine_coretext_p.h:146: error: ISO C++ forbids
declaration of ‘QCFType’ with no type
text/qfontengine_coretext_p.h:146: error: expected ‘;’ before ‘<’
token
text/qfontengine_coretext_p.h:147: error: ‘CGAffineTransform’ does
not name a type
text/qfontengine_coretext_p.h:152: error: ‘CGAffineTransform’ does
not name a type
text/qfontengine_coretext.mm:53: error: ‘acosf’ was not declared
in this scope
text/qfontengine_coretext.mm:53: error: ‘tanf’ was not declared in
this scope
text/qfontengine_coretext.mm:55: error: variable or field
‘loadAdvancesForGlyphs’ declared void
text/qfontengine_coretext.mm:55: error: ‘CTFontRef’ was not
declared in this scope
text/qfontengine_coretext.mm:56: error: ‘CGGlyph’ was not declared
in this scope
text/qfontengine_coretext.mm:56: error: template argument 1 is
invalid
text/qfontengine_coretext.mm:56: error: ‘cgGlyphs’ was not
declared in this scope
text/qfontengine_coretext.mm:57: error: expected primary-
expression before ‘*’ token
text/qfontengine_coretext.mm:57: error: ‘glyphs’ was not declared
in this scope
text/qfontengine_coretext.mm:57: error: expected primary-
expression before ‘int’
text/qfontengine_coretext.mm:58: error: expected primary-
expression before ‘flags’
text/qfontengine_coretext.mm:59: error: expected primary-
expression before ‘const’
text/qfontengine_coretext.mm:53: warning: ‘SYNTHETIC_ITALIC_SKEW’
defined but not used
make[2]: *** [.obj/debug-shared/qfontengine_coretext.o] Error 1
make[1]: *** [debug] Error 2
make: *** [sub-gui-make_default-ordered] Error 2
我错过了什么吗?使用的配置命令是:
./configure -debug -opensource -confirm-license -arch "x86_64" -cocoa -qpa
我有10.7和10.8的Xcode Mac基础SDK。
答案 0 :(得分:1)
QPA是Qt平台抽象,您可以为嵌入式系统开发自己的插件。它基本上取代了平台端口。
QPA在QT5中发展良好,也许您可以考虑使用它。 您需要自己解决这些编译问题,如果您计划如何使用QPA,最小插件是最佳选择。
您可以解决这些问题,主要是通过包含 ApplicationService 框架和标头。希望这会有所帮助。