other->C/C++->Header-6ren">
gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:15 24 4
gpt4 key购买 nike

我在 Ubuntu 上使用 Eclipse。我从 git 存储库中抓取了一个工作项目。项目中已有的.h和.cpp文件可以修改编译运行。

然后,我使用 New->other->C/C++->Header File and Source File 将新的 .h 和 .cpp 文件添加到项目中。这些新文件编译但随后生成链接错误:

未定义对“MyFunction()”的引用
类型: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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com