C++ c++;没有在eclipse android ndk项目中编译文件

C++ c++;没有在eclipse android ndk项目中编译文件,c++,eclipse,android-ndk,C++,Eclipse,Android Ndk,我在eclipse中有一个简单的ndk测试项目。我安装了所有ndk、jdk、android sdk、cygwin和eclipse cdt 现在,我的android.mk文件指向它编译的main.cpp: #include "test.h" int main (int argc, char **argv) { test* x = new test(); x->myTest(); } 但抱怨说: C:\Development\Android\Test/jni/main.cp

我在eclipse中有一个简单的ndk测试项目。我安装了所有ndk、jdk、android sdk、cygwin和eclipse cdt

现在,我的android.mk文件指向它编译的main.cpp:

#include "test.h"

int main (int argc, char **argv) {
    test* x = new test();
    x->myTest();
}
但抱怨说:

C:\Development\Android\Test/jni/main.cpp:18: undefined reference to `test::test()'
C:\Development\Android\Test/jni/main.cpp:19: undefined reference to `test::myTest()'
尽管我有一个test.cpp的实现,它如下所示:

#include "test.h"

test::test() {
    // TODO Auto-generated constructor stub
}

test::~test() {
    // TODO Auto-generated destructor stub
}

int test::myTest() {
    #error "this comes from test"
    return 5;
}

和测试.h文件声明了这样的函数(声明被发现,只是C++文件从未编译):

这是我的Android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := mylib
LOCAL_SRC_FILES := main.cpp

include $(BUILD_SHARED_LIBRARY)
编译器永远不会看到test.cpp中的#错误,除非我在我的Android.mk的本地源文件中指定了类test.cpp:

LOCAL_SRC_FILES := main.cpp test.cpp
我有一个有数千个类的大项目,我需要将它们移植到Android,但我不能在那里指定每个文件。要使编译器正常工作,我可能缺少什么?如何告诉编译器自动使用jni文件夹中的所有类?它可能只是Android.mk或设置中的某个地方的一行代码?

在Android.mk文件中使用:FILE_LIST:=$(通配符$(LOCAL_PATH)/*.cpp)和LOCAL_SRC_文件:=$(FILE_LIST:$(LOCAL_PATH)/%=%)可以复制
LOCAL_SRC_FILES := main.cpp test.cpp