和其他许多人一样,我在iTunes上采用了CS106B类,尽管这个类是旧的,但我试图使用当前的斯坦福C++库。他们在这里被找到:http://www.stanford.edu/class/cs106b/。Stanford Engineering Everywhere CS106B XCode中的C++库4.6.2
在项目的构建阶段期间,我将“链接二进制库”插入文件“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”文件可能是一个归档文件,我必须先解压缩才能链接头文件的实现代码。这是我需要做的,如果是这样,我该怎么做?我在链接文件时做了其他事情吗?
我是一个noob,我希望能够帮助那些已经成功获得当前Stanford CS106B C++库在XCode 4.6.2中工作的人。
你看过错误类型的跳过的文件吗? 'sourcecode.c.h'? – ChiefTwoPencils
奇怪的是,我的电脑上没有名为“sourcecode.c.h”的文件。这是XCode在Frameworks&Libraries构建阶段构建的文件吗? – user1973057
我对XCode很陌生,以至于我可能会漏掉一些对其他人都很明显的东西。你或者其他人能否给我一些简单的步骤来正确链接到libStanfordCPPlib.a文件和头文件? – user1973057