2017-12-03 16 views
-1

Xcode에서 작은 C++ 코드를 컴파일하여 언어로 라이브러리를 사용하는 방법을 연습하려고합니다. 정전기에 "정적 라이브러리 및 관련 .h 파일을 MacOS 명령 행 프로젝트에 추가하는 것과 관련된 Xcode C++ 오류를 해결하는 방법

Ld /Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Products/Debug/Libraries\ Project normal x86_64 
    cd "/Users/danielb/Documents/Year 1/Computer Programming/XCode/Libraries Project" 
    export MACOSX_DEPLOYMENT_TARGET=10.12 
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -L/Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Products/Debug -Llibstatic-library.a -F/Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Products/Debug -filelist /Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Intermediates.noindex/Libraries\ Project.build/Debug/Libraries\ Project.build/Objects-normal/x86_64/Libraries\ Project.LinkFileList -mmacosx-version-min=10.12 -Xlinker -object_path_lto -Xlinker /Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Intermediates.noindex/Libraries\ Project.build/Debug/Libraries\ Project.build/Objects-normal/x86_64/Libraries\ Project_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -stdlib=libc++ -lstatic-library -Xlinker -dependency_info -Xlinker /Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Intermediates.noindex/Libraries\ Project.build/Debug/Libraries\ Project.build/Objects-normal/x86_64/Libraries\ Project_dependency_info.dat -o /Users/danielb/Library/Developer/Xcode/DerivedData/Libraries_Project-ejgcifhyqbzkkjapqobtefzaquoq/Build/Products/Debug/Libraries\ Project 

ld: warning: -L path 'libstatic-library.a' is not a directory 
ld: library not found for -lstatic-library 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

가 지금은 외부 정적 라이브러리"libstatic-library.a "에 대한 참조로 코드를 실행 한하거나 헤더 파일이다 : 나는 그것을 실행하려고 할 때마다, 그러나 나는 다음과 같은 오류가 계속 library.h가 제거되고 나머지는 정상적으로 실행됩니다.

또한 헤더 파일과 .a 파일을 에 추가했습니다. 링크 된 프레임 워크 및 라이브러리 프로젝트 페이지의 일부로 두 파일 이름을 모두 빌드 설정 탭의 헤더 및 라이브러리 검색 경로에 추가했습니다.

누군가이 문제에 대한 해결책에 대해 제안을 한 경우이 오류의 특정 사례와 관련된 다른 게시물을 찾지 못했기 때문에 큰 호응을 얻었습니다.

편집 :

여기에서 문제는 당신이 그 위치에 디렉터리 만이 필요했다 라이브러리 자체의 이름을 부여한다는 것입니다 업데이트 오류 코드

ld: warning: ignoring file /Users/danielb/Documents/Year 1/Computer Programming/XCode/Libraries Project/libstatic-library.a, file was built for archive which is not the architecture being linked (x86_64): /Users/danielbradley/Documents/Year 1/Computer Programming/XCode/Libraries Project/libstatic-library.a 
Undefined symbols for architecture x86_64: 
    "StaticLibraryFunctionAddInt(int, int)", referenced from: 
     _main in main.o 
    "StaticLibraryFunctionAddFloat(float, float)", 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) 
+2

프로젝트 링커 설정에서 어딘가에 찾을 수있는 * 디렉토리 * 대신 라이브러리 파일 자체의 이름을 작성했습니다. –

+0

@Someprogrammerdude 파일 이름 대신 경로를 사용하여 코드를 빌드하려고하면 같은 오류가 발생합니다. 'code'ld : 경고 : -L path 'libstatic-library.a'는 디렉토리 '코드'가 '코드'로 변경됩니다. ld : 경고 : -L path/사용자/danielb/Documents/Year 1/컴퓨터 프로그래밍/XCode/라이브러리 Project/libstatic-library.a '디렉토리가'code '가 아닙니다. – dbradley

+1

Don 거기에 파일 이름을 넣지 말고 * 디렉토리 * 만 넣으십시오. 귀하의 예제에서는'/ Users/danielb/Documents/Year 1/Computer Programming/XCode/Libraries Project' 만 가져야합니다. –

답변

0

입니다.

제공된 경로에 실제 라이브러리 파일이 포함되어서는 안됩니다.