设置包括mac os中的eclipse CDT中的路径(来自框架的头文件)

时间:2010-10-03 20:05:23

标签: c++ macos frameworks include

例如我需要包含一个标题

#include <OpenGL/glext.h>

虽然它实际上是OpenGL.framework / Headers /下的头文件glext.h。 因此,没有办法给eclipse一个关于“OpenGL / glext.h”的物理路径,而且我总是得到未解决的包含警告。

我仍然可以构建和运行它们(使用托管makefile项目)但是无法从那些“已解析”的头文件中浏览函数或定义。

有什么解决方案吗?

3 个答案:

答案 0 :(得分:3)

虽然不理想,但我的解决方案是创建一个文件夹“/ Developer / Framework Headers”(尽管名称并不重要),并且链接来自例如:所述文件夹下的“/System/Library/Frameworks/Foo.framework/Headers”到“Foo”。然后在Eclipse中,我将“/ Developer / Framework Headers”添加到项目的includes。

我说不理想,因为除了必须为你需要的框架创建链接并为每个项目添加一个包,Eclipse似乎在某些情况下遇到麻烦,例如嵌套框架(例如ApplicationServices下的CoreGraphics),但是YMMV。 / p>

答案 1 :(得分:1)

是的,有一个。在“Project Explore”窗口中右键单击项目,然后单击“属性”。在那里打开“C / C ++ General”列并选择“Path and symbols”。现在,您将看到此项目的所有包含库路径。如果您使用C然后将OpenGL库添加到GNU C中,或者如果您使用C ++,则将其添加到GNU C ++中。不幸的是,你必须为每个新项目执行此操作。我一直在寻找一段时间如何默认这样做,但没有什么真正有用。希望这可以帮助你摆脱那些烦人的黄色波浪线。

答案 2 :(得分:0)

由于当前的Eclipse CDT版本未正确执行子框架标头包含,因此您可以通过创建指向每个子框架的include目录的符号链接来避免子框架问题(如CoreServices头文件生成的问题)。我在this question博客文章中详细阐述了这个主题,该主题源于this上的danhan回答。

为了自动完成这个过程,我创建了一个Z shell脚本,它自动执行这个过程,并创建指定框架的头目录的符号链接,以及指向每个子框架的include目录的链接。 。该脚本可以找到in this GitHub repository

希望这有帮助。