2

我已将 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 ://stackoverflow.com/questions/5293940/xcode-3-2-6-stops-looking-in-library-frameworks

任何帮助了解问题所在将不胜感激。

我从命令行测试了一个简单的测试:

测试.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 时看不到框架?

4

3 回答 3

2

我认为您没有正确地将 Cg 框架添加到项目中。单击您的目标->单击构建阶段(选项卡)->在“将二进制文件与库链接”中单击+符号-> fin Cg框架并添加它。现在以下应该编译得很好:

 #include <Cg/cg.h>
 void a() {

    CGcontext context = cgCreateContext();
 }

我还假设您使用提供的图像 (Cg-something.dmg) 安装了框架

您不必手动更改任何搜索路径。如上所示添加框架后,编译器将在那里查找。

于 2012-05-09T20:39:24.547 回答
1

我不确定这是否相关,但我在使用 CG 库时遇到了类似的问题。它将与 10.5 链接,但不与 10.6 链接。我最终意识到我的 10.6 sdk 目录搞砸了:而不是 /Developer/SDKs/MacOSX10.6.sdk/Library 在其中有一个指向 Frameworks 目录的符号链接,而是在 Frameworks 目录中有一个带有符号链接Frameworks 目录.

无论如何它应该可以工作(我已经提供了 cg 框架的绝对路径并将 /library/frameworks 目录添加到搜索路径)但它没有。实际上,为什么与 10.6 sdk 目录正确链接的东西一开始就搞砸了,我不知道......

于 2012-05-24T14:59:30.137 回答
0

好吧,我有一个关于为什么的答案,但不是如何。将 SDK 从 10.6 升级到 10.5 意味着事情神奇地起作用了。但是磁盘上的两个 SDK 目录都有相同的链接到正确的 Frameworks 目录,这是一个干净的 10.6 安装而不是升级的 10.5 机器,所以不知道为什么。任何可以写出答案来解释这一点并理想地提供解决方案的人都将受到赏金的欢迎!

于 2012-05-18T21:14:40.557 回答