我在 Ubuntu 上使用 Eclipse。我从 git 存储库中获取了一个工作项目。项目中现有的.h和.cpp文件可以修改,编译并运行良好。
然后,我使用“新建”->“其他”->“C/C++”->“头文件和源文件”将新的 .h 和 .cpp 文件添加到项目中。这些新文件编译后会生成链接错误:
对“MyFunction()”的 undefined reference
类型:C/C++ 问题。
对我来说,这意味着编译器正在编译它们,但由于某种原因没有将新的 .obj 文件放在链接器的正确位置。我研究了制作 makefile 或在项目首选项或 Eclipse 首选项中寻找选项,以便为我添加的新文件自动生成 makefile。
感谢您的帮助,我对 Eclipse 还很陌生,但对 Visual Studio 和其他 IDE 非常熟悉。
最佳答案
我和我的 friend 找到了答案,尽管每次我们向项目添加 .cpp 时都需要手动编辑文件(即使我们通过 Eclipse IDE 添加它们,Eclipse 也不会修改此文件)
在 Eclipse 中打开项目。
打开(YOUR_PROJECT)/jni/Android.mk
查找名为 LOCAL_SRC_FILES 的部分
并手动逐行添加 .cpp 文件的路径(它会自己找到 .h),如下所示:
LOCAL_SRC_FILES := hellocpp/main.cpp\
../../Classes/AppDelegate.cpp\
../../Classes/HelloWorldScene.cpp\
../../Classes/WelcomeScene.cpp
以行首的“\”字符作为分隔符。
通配符可以这样实现:
LOCAL_SRC_FILES := hellocpp/main.cpp
MY_SOURCES := $(通配符 $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES += $(MY_SOURCES:$(LOCAL_PATH)/%=%)
关于c++ - 在 Eclipse ADT 中,我创建一个新的 cpp 文件并收到 "undefined reference"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493867/