2013-07-10 33 views
1

和其他许多人一样,我在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中工作的人。

+0

你看过错误类型的跳过的文件吗? 'sourcecode.c.h'? – ChiefTwoPencils

+0

奇怪的是,我的电脑上没有名为“sourcecode.c.h”的文件。这是XCode在Frameworks&Libraries构建阶段构建的文件吗? – user1973057

+0

我对XCode很陌生,以至于我可能会漏掉一些对其他人都很明显的东西。你或者其他人能否给我一些简单的步骤来正确链接到libStanfordCPPlib.a文件和头文件? – user1973057

回答

3

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

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

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尝试这种相同的技术没有得到任何结果。

希望这有助于任何人遇到问题。

1

我目前使用的是xcode 6.4,并试图通过cs 106b课程工作,我有同样的问题不能运行示例文件和任务文件(可以在这里找到btw http://web.stanford.edu/class/archive/cs/cs106b/cs106b.1136/)。如上所述,将Project和Target的架构更改为32位Intel后,仍然收到错误。我必须采取额外的步骤,将项目信息下的OSX部署目标从10.10更改为10.8。

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

我希望此更新能够帮助您最近尝试访问此信息。

相关问题