2013-07-10 4 views
1

다른 많은 사람들과 마찬가지로, 저는 iTunes에서 CS106B 클래스를 사용하고 있습니다. 클래스는 오래되었지만 현재 사용되고있는 Stanford 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를 사용하고 있습니다. 프로젝트 및 대상 모두에 대해 OS X 10.7로 Build Settings Base SDK를 설정했습니다.

"libStanfordCPPlib.a"파일은 헤더 파일의 구현 코드를 연결하기 전에 보관 해 두어야하는 보관 파일 일 수 있습니다. 이것이 내가해야 할 일입니까, 그렇다면 어떻게해야합니까? 파일을 연결하는 데 잘못된 것이 있습니까?

저는 멍청한 사람입니다. 현재 스탠포드 CS106B C++ 라이브러리를 Xcode 4.6.2에서 작동시키는 데 성공한 사람의 도움을 받아 주시면 감사하겠습니다.

+0

잘못된 형식의 건너 뛴 파일을 살펴 보았습니까? 'sourcecode.c.h' ?? – ChiefTwoPencils

+0

궁금한 점은 내 컴퓨터에 "sourcecode.c.h"라는 파일이 없다는 것입니다. 이것은 Frameworks & Libraries 빌드 단계에서 Xcode가 빌드하는 파일입니까? – user1973057

+0

저는 Xcode에 익숙하지 않아 다른 사람들에게 명백한 것을 놓칠 수 있습니다.libStanfordCPPlib.a 파일과 헤더 파일에 연결하는 올바른 방법에 대한 간단한 단계를 제공 할 수 있습니까? – user1973057

답변

3

최신 버전의 xcode (버전 5.0, OSX 버전 10.8.5)로 업그레이드 한 후에이 문제가 발생했습니다.

프로젝트 아키텍처를 32 비트 Intel (i386)으로 전환 해보십시오. 기본값은 "Standard Architectures 64-bit Intel (x86_64)"입니다.

0

지금까지 문제에 대한 답변을 찾았지만 유사한 문제로 고통 받고 있었기 때문에 xcode 5.1을 사용하여 Warmup.cpp를 컴파일하려고 시도했지만 다른 사람들을 위해 내 솔루션을 게시 할 예정이라고 생각했습니다. xcode를 cs106b 라이브러리와 함께 사용하려고합니다.

xcode 5.1.1 및 5.0.2로 고생 한 후 xcode 4.6.3을 Apple Dev 사이트 www.developer.apple.com에서 다운로드하고 이후 버전을 휴지통에 버렸습니다. 4.6.3을 설치 한 후에도 여전히 오류가 있지만 messysaurus에서 알 수 있듯이 프로젝트 및 대상의 Architecures를 "32 비트 Intel"로 전환 한 후 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/ 찾을 수 있음). 위에 나열된대로 프로젝트와 대상 모두에 대한 아키텍처를 32 비트 인텔로 변경 한 후에도 오류가 발생했습니다. 프로젝트 정보에서 OSX 배포 대상을 10.10에서 10.8로 변경하는 추가 단계를 거쳐야했습니다.

이렇게하면 프로그램을 빌드 할 수 있지만 Java Runtime Environment를 설치해야한다는 통지를 받았으며 문의 출력이 없습니다. 이것을 설치해도 문제가 해결되지 않았습니다. Java Development Kit을 설치 한 후에 만 ​​코드를 완전히 실행할 수있었습니다. 나는 이제 코스의 모든 파일을 컴파일 할 수있게되었습니다.

이 업데이트가이 정보에 대한 최근 액세스 시도에 도움이되기를 바랍니다.