我在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。
答案 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)/%=%)