像许多其他应用程序一样,我正在iTunes上学习CS106B类,尽管该类很旧,但我正在尝试使用最新的Stanford C++库。它们在这里找到:http://www.stanford.edu/class/cs106b/

在项目的构建阶段,我将“random.h”和“libStanfordCPPlib.a”文件插入“与库链接二进制文件”中。这样做时,我收到以下错误消息:

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。我已经将Project和Target的Build Settings Base SDK设置为OS X 10.7。

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

我是一个菜鸟,对于能成功使当前的Stanford CS106B C++库在XCode 4.6.2中运行的任何人所提供的帮助,我将不胜感激。

最佳答案

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

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

09-04 04:05