XCode 3.2.6 无法识别 Cg 框架
Posted
技术标签:
【中文标题】XCode 3.2.6 无法识别 Cg 框架【英文标题】:Cg Framework not being recognized by XCode 3.2.6 【发布时间】:2012-05-09 20:05:32 【问题描述】:我已将 Cg 安装到 /Library/Frameworks/Cg.framework
。它在磁盘上看起来像这样:
我的 XCode 3.2.6 项目在“其他链接器设置”中有 Library/Frameworks
作为框架搜索路径和 -Framework Cg
,但是当我尝试 #include <Cg/cg.h>
时找不到该文件。如果我直接将/Library/Frameworks/Cg.framework/Headers
添加到我的“标题搜索路径”中,我可以使用“#include”,但它无法链接并出现错误“未找到 Cg 框架”。
我真的不明白什么是 Mac 框架是 - 它有什么特别的还是只是一个常规目录?似乎 Xcode 根本不理解 /Library/Frameworks/Cg.framework
是 出于某种原因的框架。
我不确定这是否相关:https://***.com/questions/5293940/xcode-3-2-6-stops-looking-in-library-frameworks
我们将不胜感激任何帮助理解问题所在。
我从命令行测试了一个简单的测试:
test.cpp
#include <Cg/cg.h>
void f()
CGcontext context = cgCreateContext();
运行“gcc -c test.cpp”成功(-c 表示不链接)。我还运行了“gcc -M test.cpp”(列出依赖项):/Library/Frameworks/Cg.framework/Headers/cg.h
所以框架看起来很好......如何在不传递任何搜索路径的情况下运行 gcc,但是 XCode 在调用 gcc 时看不到框架?
【问题讨论】:
那么您的问题到底是什么?你不明白为什么#include <cg.h>
有效(为什么不需要<Cg/cg.h>
)?
正确。这是稳定的第 3 方代码,所以我不需要修改它。
【参考方案1】:
我认为您没有正确地将 Cg 框架添加到项目中。单击您的目标->单击构建阶段(选项卡)->在“将二进制文件与库链接”中单击+符号-> fin Cg框架并添加它。现在以下应该编译得很好:
#include <Cg/cg.h>
void a()
CGcontext context = cgCreateContext();
我还假设您使用提供的图像 (Cg-something.dmg) 安装了框架
您不必手动更改任何搜索路径。如上图添加框架后,编译器会在那里查找。
【讨论】:
我在 3.2.6 中没有“构建阶段”,但是当我执行“获取信息”并尝试将 Cg.framework 添加到链接库时,它不会出现在列表中。 你是对的,我错过了你有旧 XCode 的事实。尽管如此,在 3.2.6 中也有相同的框架概念。使用此问题的答案在 3.2.6 中添加框架:***.com/questions/1566350/…。如果仍然找不到,则说明您没有正确安装 Cg 框架。尝试从 *.dmg 文件再次安装它。 我确定框架已安装好,我重新安装检查并在我的问题中添加了屏幕截图。我的“框架搜索路径”中有Library/Frameworks
。据我所知,XCode/Mac 根本无法识别 /Library/Frameworks/Cg.framework 作为框架。
好吧,我刚刚尝试下载 CG dmg 并使用 XCode 3.2.6 在 vmware 中安装它。我能够编译我上面写的代码。我真的 jsut 创建了 C++ 项目,添加了框架并且它起作用了。所以这真的很奇怪。从我在您的屏幕截图中看到的内容,我可以告诉我 Cg.framework 目录的内容相同。特别奇怪的是其他框架只为你工作。
如果你真的卡住了,也许你可以再检查一件事。查看当前别名...它的原始路径应该是 Framework 1.0 (/Library/Frameworks/Cg.framework/Versions/1.0)【参考方案2】:
我不确定这是否相关,但我在使用 CG 库时遇到了类似的问题。它将与 10.5 链接,但不与 10.6 链接。我最终意识到我的 10.6 sdk 目录搞砸了:而不是 /Developer/SDKs/MacOSX10.6.sdk/Library 有一个指向 Frameworks 目录的符号链接,它有一个 Frameworks 目录,里面有一个符号链接 框架目录。
无论如何它应该可以工作(我已经提供了 cg 框架的绝对路径并将 /library/frameworks 目录添加到搜索路径)但它没有。实际上,为什么与 10.6 sdk 目录正确链接的东西一开始就搞砸了,我不知道...
【讨论】:
【参考方案3】:嗯,我有一个关于为什么的答案,但没有答案。将 SDK 从 10.6 升级到 10.5 意味着事情神奇地起作用了。但是磁盘上的两个 SDK 目录都有相同的链接到正确的 Frameworks 目录,这是一个干净的 10.6 安装而不是升级的 10.5 机器,所以不知道为什么。任何可以写答案解释这一点并最好提供解决方案的人都欢迎赏金!
【讨论】:
以上是关于XCode 3.2.6 无法识别 Cg 框架的主要内容,如果未能解决你的问题,请参考以下文章
FBSDKCoreKit 框架,在 xCode 7 协议 FBSDKApplicationDelegate 无法识别