Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Xcode 应用程序插件在-O0OSX以外的任何优化级别都会失败_Xcode_Macos_Optimization_Compiler Construction - Fatal编程技术网

Xcode 应用程序插件在-O0OSX以外的任何优化级别都会失败

Xcode 应用程序插件在-O0OSX以外的任何优化级别都会失败,xcode,macos,optimization,compiler-construction,Xcode,Macos,Optimization,Compiler Construction,在XCode4下构建应用程序插件时,我遇到了一个非常奇怪的问题。苹果LLVM4.2 所讨论的项目为外部应用程序构建了一个插件文件,它基本上是一个捆绑包,但具有不同的扩展名。 插件本身正在对视频流进行一些操作,并且有一些相当高的吞吐量要求,因此需要适当优化代码 但是,只要我启用除None[-O0]之外的任何优化级别,应用程序就会永远加载我的插件,结果我的插件永远不会被使用。 从我目前的调试来看,我看不到任何明显的代码失败的地方, 或者采取与未优化版本代码不同的路径。 用于在Xcode3下使用优化进

在XCode4下构建应用程序插件时,我遇到了一个非常奇怪的问题。苹果LLVM4.2 所讨论的项目为外部应用程序构建了一个插件文件,它基本上是一个捆绑包,但具有不同的扩展名。 插件本身正在对视频流进行一些操作,并且有一些相当高的吞吐量要求,因此需要适当优化代码

但是,只要我启用除None[-O0]之外的任何优化级别,应用程序就会永远加载我的插件,结果我的插件永远不会被使用。 从我目前的调试来看,我看不到任何明显的代码失败的地方, 或者采取与未优化版本代码不同的路径。 用于在Xcode3下使用优化进行精细编译的早期版本代码, 但是,添加新功能需要更高的性能,不使用优化不再是可以接受的

所以我希望有人能提供一些关于调试/跟踪此问题的提示? 它都是标准的C++,有一些pTrk的东西。 遗憾的是,我还没有为这种特殊情况开发调试技能或技术

宿主应用程序确实提供了一个示例项目,在启用优化的情况下,该项目可以很好地编译。然而,我正在寻找调试技术和方法,而不是简单地逐行重建我的项目,试图找到有问题的代码

提前感谢,

詹姆斯


这是我在这里的第一篇文章。伟大的资源顺便说一句。

我认为科巴已经提供了一个合适的答案, 即,尝试逐个文件启用优化

我已经试过了,现在我有了编译包含CPU密集型代码的文件的插件,并通过优化进行了编译,我还发现了哪个文件包含违规代码

在逐个文件的基础上选择性地启用编译选项是一个强大的调试工具

谢谢你,科巴


我不知道该如何赞扬他提供了正确的答案

我真的不知道这种情况的任何细节,但是这里有一些关于从何处开始查找的建议:1:如果插件中有多个文件,请尝试使用不同的优化级别编译不同的文件,并找出是否只有一个文件是优化导致问题的,甚至可以使用pragmas对每个函数进行优化来进一步分解。2:尝试在主机进程上运行gdb,并在插件长时间加载期间暂停,看看它在哪里花费了所有的时间。哦,谢谢,我没有想到在不同的优化级别编译特定的文件,这将是一个很大的帮助。值得一提的是,如果一个文件在优化过程中失败,它很可能有某种微妙的缺陷,在优化过程中暴露出来。仔细查看该文件,可能是使用clang-analyze,看看是否有不太正确的地方。