2013-03-23 1 views
0

나는 cocos2d-x 프로젝트를 개발 중이며, 그것의 보편적 인 기능은 android와 iOS에서 작동합니다.치명적인 오류가 아니며,이 파일이나 디렉토리가 없습니다.

최근에 flite를 사용하여 음성 기능에 텍스트를 추가했습니다. xcode에서 flite를 사용하려면 헤더와 C 파일의 폴더를 내 xcode 프로젝트로 드래그 한 다음 헤더를 포함하고 사용할 수 있습니다. 거기에 문제 없습니다.

그러나 Eclipse에서 파일을 볼 수있는 컴파일러를 얻을 수 없으며 언급 한 치명적인 오류로 폭탄을 터뜨릴 수 있습니다. 특히 : 치명적인 오류 : flite.h 파일이나 디렉토리가 없습니다.

나는 C/C++ 일반 아래에서 eclipse의 includes 섹션에 폴더를 포함 시키려고했지만 행운이 없다. 나는 이것이 내 android.mk 파일과 관련이있을 것이라고 생각한다. 이것을 어떻게 설정하는지에 대한 지침은 크게 감사 할 것이다. 참고로 내 프로젝트는 내 .cpp 및 .h 파일이 내 컴퓨터의 실제 위치가 아닌 다른 위치에 있도록 설정되어 있습니다. 필자의 flite 소스 파일도 마찬가지입니다. (필자는 필자의 프로젝트에 그들을 추가하려고했지만 필사적으로 컴파일러는 여전히 그들을 찾을 수 없었다)

시간 내 주셔서 감사합니다.

추신 : 어떻게하면 flite를 참조할까요? 라이브러리/프레임 워크입니까?

편집 Android.mk 파일을 수정하여 flite 헤더를 찾으려고했습니다. 내 추가 내용은 아래에 표시됩니다.

LOCAL_PATH := $(call my-dir) 



include $(CLEAR_VARS) 

LOCAL_MODULE := game_shared 

LOCAL_MODULE_FILENAME := libgame 

LOCAL_SRC_FILES := hellocpp/main.cpp \ 
       ../../Classes/AppDelegate.cpp \ 
       ../../Classes/HelloWorldScene.cpp \ 
       ../../Classes/CCLabelTTFExtension.cpp \ 
       ../../Classes/menuScene.cpp \ 
       ../../Classes/text_Parse.cpp \ 
       ../../Classes/FileTS.cpp 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/ 
#my addition 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/flite/ 


dirs := $(shell /flite -type d) 

cfilestemp1 := $(shell find /src -type d) 
cfilestemp2 := $(shell find $(cfilestemp1) -name *.c) 
cfilestemp3 := $(sort $(cfilestemp2)) 
cfiles := $(subst $(LOCAL_PATH)/,,$(cfilestemp3)) 

LOCAL_SRC_FILES += \ 
      $(cfiles) 
#end my addition 

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static  cocos_extension_static 

include $(BUILD_SHARED_LIBRARY) 

$(call import-module,CocosDenshion/android) \ 
$(call import-module,cocos2dx) \ 
$(call import-module,extensions) 


include $(CLEAR_VARS) 

이것은 나를 더 가까이 잡았고, 다른 오류를주었습니다. 이제 컴파일러는 내 프로젝트에서 flite를 사용하고있는 FileTS.cpp 파일에서 정의되지 않은 참조를 불평합니다. (참고 : 이제 flite 헤더와 소스 파일이 jni 폴더의 프로젝트에 추가되었습니다.)

+0

flite lib가 컴파일 된 버전입니까 아니면 소스에서 컴파일하려고합니까? 가장 쉬운 방법은 모든 소스 코드를 Classes 폴더에 넣고 mainScene.cpp와 같은 LOCAL_SRC_FILES에 cpp 파일을 나열하는 것입니다. 이렇게하면 라이브러리가 게임 객체 파일에 빌드되도록 할 수 있습니다. –

+0

flite가 컴파일 된 버전이라면 어떤 프로세서를 겨냥했는지 알 수 없기 때문에 말할 수 없습니다. lib가 non-arm 프로세서 용으로 컴파일 된 경우에는 사용할 수 없습니다. –

+0

소스에서 컴파일하는 것을 목표로하고 있지만 .c 파일이 많이 포함되어 있으므로 수동으로 나열해야 할 필요가 있다고 생각합니다. – Sam

답변

0

가장 쉬운 방법은 모든 소스 코드를 Classes 폴더에 저장하고 mainScene.cpp와 같은 LOCAL_SRC_FILES에 cpp 파일을 나열하는 것입니다. 이렇게하면 라이브러리가 게임 객체 파일에 빌드되도록 할 수 있습니다.

+0

자세한 내용을 제공해 주실 수 있습니까? – Josh

+0

@Josh이 답변은 cocos2d-x 1.x를 겨냥한 이후로 작성되었습니다. 그들은 근원지에서 건설하는 방법에 대한 그들의 구조를 바꿀지도 모릅니다. –

+0

오, cr4p ... 말해 줘서 고마워! – Josh

관련 문제