c++ - 在 Eclipse ADT 中,我创建一个新的 cpp 文件并收到 "undefined reference"错误

标签 c++ eclipse reference undefined adt

我在 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/

相关文章:

c++ - 为什么(删除的)复制构造函数优于隐式转换?

c++ - 一个类可以有虚拟数据成员吗?

javascript - 使用 javascript 使元素改变它自己的内容

c++ - 正确的 OOP 设计,如果我想调用 const 引用的非 const 函数?

c++ - C++ | BST对节点指针的引用与节点指针

c++ - 双向链接的线程安全分离

c++ - 从内存中的某个位置加载 DLL

java - 如何从 Eclipse 导入包?

java - 如何放大面板以及java gui用什么?

java - 对 Git (EGit) 感到困惑 - 工作区中的项目与本地存储库中的项目相同