나는 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 폴더의 프로젝트에 추가되었습니다.)
flite lib가 컴파일 된 버전입니까 아니면 소스에서 컴파일하려고합니까? 가장 쉬운 방법은 모든 소스 코드를 Classes 폴더에 넣고 mainScene.cpp와 같은 LOCAL_SRC_FILES에 cpp 파일을 나열하는 것입니다. 이렇게하면 라이브러리가 게임 객체 파일에 빌드되도록 할 수 있습니다. –
flite가 컴파일 된 버전이라면 어떤 프로세서를 겨냥했는지 알 수 없기 때문에 말할 수 없습니다. lib가 non-arm 프로세서 용으로 컴파일 된 경우에는 사용할 수 없습니다. –
소스에서 컴파일하는 것을 목표로하고 있지만 .c 파일이 많이 포함되어 있으므로 수동으로 나열해야 할 필요가 있다고 생각합니다. – Sam