2010-03-21 2 views
0

동일한 응용 프로그램에서 FMOD와 HTTPriot를 사용하려고합니다. FMOD는 HTTPriot에 대한 링커 플래그를 추가 할 때까지 제대로 작동합니다.이 시점에서 FMOD가 정의되지 않은 기호에 대해 불평하는 오류를 연결하는 링크가 나타납니다. 즉, HTTPriot에 링커 플래그를 추가하면 FMOD의 라이브러리로드가 중단되는 것 같습니다. 한 라이브러리의 링커 플래그가 다른 라이브러리의 로딩을 중단합니다.

모두가 내 빌드의 연결 단계에서오고, 내가지고있어 오류의 종류입니다

Undefined symbols: 
    "_FMOD_Sound_Lock", referenced from: 
     -[FMODEngine recordedSoundAsNSData] in FMODEngine.o 
     -[FMODEngine writeRecordingToDiskWithName:] in FMODEngine.o 
    "_FMOD_MusicSystem_PrepareCue", referenced from: 
     -[FMODEngine addCue:] in FMODEngine.o 

이 링커 플래그 HTTPriot위한 것입니다 : -lhttpriot -lxml2 -ObjC http://labratrevenge.com/httpriot/docs/iphone-setup.html

내가의 기대했다 :

-all_load

는 여기 지침에 따라 HTTPriot의 SDK에 그뿐만 아니라 경로를 추가 omeone은 하나의 라이브러리에 링커 플래그를 추가하면 다른 라이브러리에로드가 실패 할 수있는 이유를 설명 할 수 있습니다. 이 플래그가 없다면, HTTPriot와 FMOD 모두 시뮬레이터에서 제대로 작동하지만, HTTPriot는 런타임 오류가 있습니다. 라이브러리가 링크되어 있지 않기 때문에 가정합니다. FMOD는 장치에서 잘 작동합니다.

FMOD를 찾기 위해 Xcode에서 빌드 설정에 헤더 검색 경로와 라이브러리 검색 경로를 배치했습니다. 이 HTTPriot 링커 플래그를 추가하기 전까지는 괜찮은 것 같습니다. 나는 또한 FMOD 라이브러리 (-lfmodex)에 링커 플래그를 추가하려고 시도했지만, 필자가 사용하지 않을 때와 같은 오류가 발생한다.

+0

이 문제를 해결에-asposed - 돌대가리 실수였다. – trevrosen

답변

0

그래 -이 문제는 말한다 HTTPRiot 지침의 일부에 도달 다른 사람을 위해 :

이 -lhttpriot -lxml2 -ObjC -all_load

에 다른 링커 플래그 설정을

그 부분을 매우 조심하십시오. 그 필드는 비어 있었으므로 "다른 링커 플래그"를 -lhttpriot로 설정해야했습니다.

이 그렇지 않으면 엑스 코드 물건을 다시 가져 오는 나타납니다 당신없는 원인이 중복 문제 :

0

이것은 실수로 링커 플래그 설정을 덮어 쓰는 문제였습니다. 사고로 Xcode에서 쉽게 처리 할 수 ​​있습니다.

관련 문제