2011-10-22 5 views
1

내 xcode 프로젝트에 liboauth.dylib를 추가하려고합니다 (C++). 나는 구성 이제 지금 내 /usr/local/lib있는 앉아 가지고있다 라이브러리, 만든 : usr/local/include의 헤더와liboauth가 올바르게 연결되지 않았습니다.

liboauth.0.dylib 
liboauth.dylib <- a link to liboauth.0.dylib 
liboauth.li 
liboauth.a 

합니다. 좋은데.

Other Linker Flags 섹션에 추가하고 usr/local/include/Header Search Paths 섹션에 추가하여 내 xcode에 포함 시켰습니다.

나는 또한 Library Search Paths에 포함 시켰습니다.

내 시스템에서 정상적으로 작동합니다. 그러나 결과 .app을 다른 (osx) 컴퓨터로 가져 가면 /usr/local/liboauth.0.dylib 오류가 발생합니다 (이 파일은 .app를 열고 유닉스 실행 파일을 실행하여 얻습니다).

작성시 링커가 liboauth dylib를 포함해야합니까? 그리고 다른 컴퓨터에 갈 때 문제가되지 않아야합니까?

대답이 '아니오'라면 liboauth.dylib를 .app에 포함 시켜서 (osx를 실행하는) 모든 컴퓨터에서 실행할 수 있습니까?

다음은 특정 오류입니다 :

Library not loaded: /usr/local/lib/liboauth.0.dylib 
Referenced from: /Users/scratch/gameTest.app/Contents/MacOS/gameTest 
Reason: image not found 

편집 : 내가 문제를 발견했다!

Load command 3 
      cmd LC_ID_DYLIB 
     cmdsize 56 
     name /usr/local/lib/liboauth.0.dylib (offset 24) 
    time stamp 1 Thu Jan 1 12:00:01 1970 
     current version 9.1.0 
compatibility version 9.0.0 

누군가가이 설정을 변경하는 방법을 알아 내기 위해 좀 도와 줄래 :이 발견 liboauth.0.dylib에 otool -l 명령을 사용하십니까? 나는 그것이 install_name_tool과 관련이 있다고 생각하지만 올바르게 움직이는 방법을 모른다.

답변

0

두 시스템이 동일합니까? 32 비트/64 비트, Snow Leopard vs. Leopard.

라이브러리가 어떻게 다른지를 볼 수 있으며 그 경우 오류가 발생할 수 있습니다.

동일하면 프로젝트 설정에서 링커 플래그를 설정하고 대상 설정에 의해 무시 될 수 있습니다.

+0

예, 둘 다 Snow Leopard입니다. 내 OS에만 liboauth가 설치되어 있는지 확인하십시오. 다른 컴퓨터는 그렇지 않습니다. 내 응용 프로그램에 liboauth.dylib를 포함시키고 읽을 것을 기대합니다./usr/local/ – rykardo

+0

에서 읽기를 시도하는 것과 반대 인 경우 동일한 경우 프로젝트 설정에서 링커 플래그를 설정하고 대상 설정에 의해 무시 될 수 있습니다. – CryptoJones

+0

흠, 아니, 난 그냥 두 번 확인하고 두 경우 모두 동일합니다. 그래도 좋은 제안. 나는이 작업을 시도했지만 여전히 동일한 오류가 발생합니다. cp -f /usr/local/lib/liboauth.dylib "$ TARGET_BUILD_DIR/$ PRODUCT_NAME.app/Contents/MacOS/liboauth.dylib"; install_name_tool -change ./liboauth.dylib @ executable_path/liboauth.dylib "$ TARGET_BUILD_DIR/$ PRODUCT_NAME.app/Contents/MacOS/$ PRODUCT_NAME"; 이게 맞습니까? – rykardo

관련 문제