Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 阻止在Cocoa应用程序中加载OpenGL.framework_Macos_Cocoa_Opengl_Ios Frameworks - Fatal编程技术网

Macos 阻止在Cocoa应用程序中加载OpenGL.framework

Macos 阻止在Cocoa应用程序中加载OpenGL.framework,macos,cocoa,opengl,ios-frameworks,Macos,Cocoa,Opengl,Ios Frameworks,我的应用程序链接到这些框架: Cocoa.Framework AppKit.Framework CoreData.Framework Foundation.Framework 请注意,OpenGL.Framework是未链接的。但是,在设置DYLD_PRINT_LIBRARIES=1后,我注意到: dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL dyld:loaded:/System/Libr

我的应用程序链接到这些框架:

Cocoa.Framework
AppKit.Framework
CoreData.Framework
Foundation.Framework
请注意,OpenGL.Framework是未链接的。但是,在设置DYLD_PRINT_LIBRARIES=1后,我注意到:

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/

这是一个巨大的问题,因为正如[CODEA DEV]列表中提到的那样,OpenGL框架使得英伟达图形卡能够为更新的MacBook PROS.p> 如预期,我的应用程序会使英伟达卡上机。更糟糕的是,当窗口关闭时框架没有卸载

我仅有的非标准图形元素是一些自定义的NSBezierPath图形和阴影

基本上,当我的应用程序启动时,会使用集成图形,直到显示窗口,然后,无论窗口状态如何,离散图形都会打开并保持打开状态


回答


对于具有NSBezierPath或清晰背景的NSView,请确保设置:[myView SetWantLayer:NO]

我认为您使用的功能需要Cocoa才能加载OpenGL。比如CoreAnimation,或者任何花哨的UI东西。您是否正在应用程序中显示视频?这可能是原因


在一个链接到相同框架的全新示例项目上是否也会发生同样的情况?

此外,苹果似乎已经增加了对允许您的应用程序尝试在集成图形卡上运行的支持

NSSupportsAutomaticGraphics切换为true将有助于2011年(及以后?)macbooks


您必须使用此设置测试应用程序。

请编辑您的问题以包含此命令的输出:
otool-l PATH/to/your/app/Contents/MacOS/your|u EXECUTABLE | grep-F framework
(这是加载命令的
otool
l
)可能您激活了“想要核心动画层”在Interface builder中的任何视图上偶然出现?Max-关于CoreAnimationLayer,您是正确的!!非常感谢。