1

像许多其他人一样,我正在 iTunes 上学习 CS106B 课程,虽然该课程很旧,但我正在尝试使用最新的斯坦福 C++ 库。它们可以在这里找到:http: //www.stanford.edu/class/cs106b/

在项目的构建阶段,我已将文件“random.h”和“libStanfordCPPlib.a”插入到“Link Binary with Libraries”中。当我这样做时,我收到以下错误消息:

Check dependencies

warning: skipping file '/Users/lewis/Documents/Think Like a Programmer/CS106/VotingSimulation/../../../Programming Abstractions/Assignment 1/Assignment1-xcode/0 - Warmup/StanfordCPPLib/random.h' (unexpected file type 'sourcecode.c.h' in Frameworks & Libraries build phase)

ld: warning: ignoring file /Users/lewis/Documents/Programming Abstractions/Assignment 1/Assignment1-xcode/0 - Warmup/StanfordCPPLib/libStanfordCPPLib.a, file was built for archive which is not the architecture being linked (x86_64): /Users/lewis/Documents/Programming Abstractions/Assignment 1/Assignment1-xcode/0 - Warmup/StanfordCPPLib/libStanfordCPPLib.a
Undefined symbols for architecture x86_64:
  "randomChance(double)", referenced from:
   _main in main.o
ld: symbol(s) not found for architecture x86_64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

我正在使用 Mac OS X 10.7.5 和 XCode 4.6.2。我已将项目和目标的构建设置基础 SDK 设置为 OS X 10.7。

在我看来,“libStanfordCPPlib.a”文件可能是一个存档文件,我必须先取消存档,然后才能链接头文件的实现代码。这是我需要做的,如果是,我该怎么做?我在链接文件时做错了什么吗?

我是一个菜鸟,如果任何人成功让当前的斯坦福 CS106B C++ 库在 XCode 4.6.2 中工作,我将不胜感激。

4

3 回答 3

3

升级到最新版本的 xcode(5.0 版,OSX 10.8.5 版)后,我自己也遇到了这个问题。

尝试将项目的架构切换到 32 位 Intel (i386)。默认值为“标准架构 64 位 Intel (x86_64)”。

于 2013-09-23T03:07:20.643 回答
1

我目前正在使用 xcode 6.4 并尝试完成 cs 106b 课程作业,我遇到了无法运行示例文件和分配文件的相同问题(可以在这里找到 btw http://web.stanford.edu /class/archive/cs/cs106b/cs106b.1136/)。将项目和目标的体系结构更改为上面列出的 32 位英特尔后,我仍然收到错误。我不得不采取额外的步骤,在项目信息下将 OSX 部署目标从 10.10 更改为 10.8。

这允许程序构建,但我收到了我需要安装 Java 运行时环境的通知,并且没有咨询输出。安装它并没有解决问题。我只能在安装 Java 开发工具包后才能完全执行代码。我现在可以编译课程的所有文件。

我希望此更新有助于最近尝试访问此信息。

于 2015-07-17T04:48:50.657 回答
0

我希望你现在已经找到了你的问题的答案,但是由于我遇到了类似的问题,试图让 xcode 5.1 编译 Warmup.cpp,我想我会为那些试图获得 xcode 的人发布我的解决方案使用 cs106b 库。

在使用 xcode 5.1.1 和 5.0.2 苦苦挣扎后,我从苹果开发网站 www.developer.apple.com 下载了 xcode 4.6.3,并丢弃了更高版本。安装 4.6.3 后,我仍然遇到错误,但在将项目和目标的架构切换为“32 位英特尔”后,正如 messysaurus 所建议的那样,warmupp.cpp 编译得很好。用 xcode 5.1.1 和 5.0.2 尝试同样的技术没有产生任何结果。

希望这可以帮助其他遇到问题的人。

于 2014-06-10T14:58:45.607 回答