【问题标题】:Fatal error, no such file or directory ( eclipse android )致命错误,没有这样的文件或目录(eclipse android)
【发布时间】:2013-03-13 12:55:24
【问题描述】:

我正在开发一个 cocos2d-x 项目,因为它的通用性适用于 android 和 iOS。

我最近使用 flite 添加了文本到语音功能。在 xcode 中,我使用 flite 所做的一切就是将 headers 和 c 文件的文件夹拖到我的 xcode 项目中,然后我可以包含它的 headers 并使用它。没有问题。

但是,在 Eclipse 中,我无法让编译器查看文件,并且它不断出现我提到的致命错误。具体来说:致命错误:flite.h 没有这样的文件或目录。

我试图在 C/C++ general 下的 eclipse 的包含部分中包含该文件夹,但没有运气。我认为这可能与我的 android.mk 文件有关,不胜感激如何为此目的进行设置的指导。附带说明一下,我的项目已设置为使我的 .cpp 和 .h 文件存在于我计算机上的其他位置,而不是我的实际项目中。我的 flite 源文件也是如此。 (我确实尝试将它们添加到我的项目中,但是出于绝望但编译器仍然找不到它们)

感谢您的宝贵时间。

PS: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)

这让我更接近,好吧,给了我不同的错误。现在编译器在我的 FileTS.cpp 文件中抱怨未定义的引用,该文件在我的项目中使用 flite。 (注意:我的 flite 头文件和源文件现在已添加到我的项目中的 jni 文件夹中)

【问题讨论】:

  • 你的 flite lib 是编译版本还是你想从源代码编译它?最简单的方法是将所有源代码放入 Classes 文件夹并在 LOCAL_SRC_FILES 中列出 cpp 文件,如 mainScene.cpp 。这将确保您的库被构建到您的游戏对象文件中。
  • 如果 flite 是编译版本,那么就很难判断,因为我们不知道它针对的是哪个处理器。如果 lib 是为非 arm 处理器编译的,那么您可能无法使用它。
  • 我的目标是从源代码编译它,但它包含相当多的 .c 文件,我想它们都需要手动列出
  • 我猜你需要。您可以列出这些 .cpp 文件中的 .c 文件,包括正确的路径。
  • 谢谢。为了使事情更容易,我使用通配符自动列出所有 .c 文件,并使用 local_c_includes 列出所有单独的头文件夹。提交答案,我会给你赏金,因为它现在有效:)

标签: android ios eclipse cocos2d-x fatal-error


【解决方案1】:

最简单的方法是将所有源代码放入 Classes 文件夹中,并在 LOCAL_SRC_FILES 中列出 cpp 文件,如 mainScene.cpp 。这将确保您的库被构建到您的游戏对象文件中。

【讨论】:

  • 您能否提供更多详细信息?
  • @Josh 这个答案可能已经过时了,因为它的目标是 cocos2d-x 1.x。他们可能会改变如何从源代码构建的结构。
猜你喜欢
  • 2019-05-20
  • 1970-01-01
  • 2014-06-04
  • 2014-06-08
  • 2017-05-09
  • 2021-05-15
  • 2014-10-31
  • 2022-01-11
  • 2021-09-19
相关资源
最近更新 更多