在Eclipse ADT中,我创建了一个新的cpp文件并收到“未定义的引用”错误

时间:2014-02-01 03:48:08

标签: c++ eclipse reference undefined adt

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

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

undefined reference to 'MyFunction()' Type: C/C++ Problem.

对我来说意味着编译器正在编译它们,但由于某种原因,并没有将新的.obj文件放在链接器的正确位置。我研究了制作makefile或在Project Preferences或Eclipse Preferences中查找选项,以自动为我添加的新文件生成makefile。

感谢您的帮助,我还是Eclipse的新手,同时非常熟悉Visual Studio和其他IDE。

1 个答案:

答案 0 :(得分:2)

我的朋友和我找到了答案,虽然每次我们向项目添加.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 := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES += $(MY_SOURCES:$(LOCAL_PATH)/%=%)