0
我正在使用Android NDK,并且遇到此问题。我得到以下错误;编译项目时出现未定义的引用错误(ANDROID NDK)
22:30:09 **** Incremental Build of configuration Default for project MrBlueFramework ****
"D:\\Android_Development\\Android_NDK\\ndk-build.cmd" all
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
[armeabi] Compile++ thumb: MrBlueFramework <= MrBlueFramework.cpp
[armeabi] SharedLibrary : libMrBlueFramework.so
D:/Android_Development/Android_NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/MrBlueFramework/MrBlueFramework.o: in function android_main:jni/MrBlueFramework.cpp:11: error: undefined reference to 'Framework::Application::Application(android_app*)'
D:/Android_Development/Android_NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/MrBlueFramework/MrBlueFramework.o: in function android_main:jni/MrBlueFramework.cpp:11: error: undefined reference to 'Framework::Application::~Application()'
collect2: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libMrBlueFramework.so] Error 1
这是我的层次结构看起来像;
这里是我的android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MrBlueFramework
LOCAL_SRC_FILES := MrBlueFramework.cpp \
Framework/Application/Application.cpp\
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
这里是Application.h
#include <android_native_app_glue.h>
namespace Framework
{
class Application
{
private:
public:
Application(android_app *state);
virtual ~Application();
bool Initialize();
void Run();
};
}
的内容这里是主类(mrblueframework.cpp)
#include <jni.h>
#include <android_native_app_glue.h>
#include "Framework\Application\Application.h"
using namespace Framework;
void android_main(android_app *state)
{
app_dummy();
Application app(state);
}
我不明白我在做什么错,我包括我的Application.h文件在上面,但仍然没有找到它。请帮助我解决这个问题。
问题是我没有包括Application.cpp,所以它没有找到所有上面declare函数的定义,谢谢你的帮助 – 2014-10-07 17:58:41