我已将Cg安装到/Library/Frameworks/Cg.framework
。它在磁盘上看起来像这样:
我的XCode 3.2.6项目有Library/Frameworks
作为框架搜索路径,-Framework Cg
在“其他链接器设置”中,但当我尝试#include <Cg/cg.h>
时,它无法找到该文件。如果我直接将/Library/Frameworks/Cg.framework/Headers
添加到我的“标题搜索路径”,我可以“#include”,但它无法链接错误“Framework not found Cg”。
我真的不明白Mac框架是什么 - 它有什么特别之处还是只是常规目录?由于某种原因,似乎Xcode根本不理解/Library/Frameworks/Cg.framework
是框架。
我不确定这是否相关:https://stackoverflow.com/questions/5293940/xcode-3-2-6-stops-looking-in-library-frameworks
任何有助于理解错误的帮助都会受到赞赏。
我从命令行测试了一个简单的测试:
#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?
答案 0 :(得分:2)
我认为您没有正确地将Cg框架添加到项目中。点击你的目标 - &gt;单击“使用库链接二进制文件”中的“构建阶段(选项卡)” - >“单击+符号 - &gt; fin Cg框架并添加它。现在以下应该编译得很好:
#include <Cg/cg.h>
void a() {
CGcontext context = cgCreateContext();
}
我还假设您使用提供的图像(Cg-something.dmg)
安装了框架您无需手动更改任何搜索路径。当如上所示添加框架时,编译器将在那里查看。
答案 1 :(得分:1)
我不确定这是否相关,但我在CG库中遇到了类似的问题。它将链接10.5但不是10.6。我最终意识到我的10.6 sdk目录搞砸了:而不是/Developer/SDKs/MacOSX10.6.sdk/Library有一个到框架目录的sym链接,它有一个带有sym链接的Frameworks目录 Frameworks目录。
它应该已经工作了(我提供了cg框架的绝对路径并将/ library / frameworks目录添加到搜索路径中)但它没有。实际上,为什么与10.6 sdk目录正确连接的东西一开始就搞砸了,我不知道......
答案 2 :(得分:0)
我有答案为什么,但不是如何。将SDK从10.6改为10.5意味着神奇的工作。但是两个SDK dirs在磁盘上都有相同的链接到正确的Frameworks目录,这是一个干净的10.6安装而不是升级的10.5机器,所以不知道为什么。任何能够写出答案解释这个并且理想地提供解决方案的人都会受到赏金的欢迎!