Android ndk Android NDK-链接问题

Android ndk Android NDK-链接问题,android-ndk,cygwin,native,Android Ndk,Cygwin,Native,这是我第一次使用安卓NDK和Cygwin,如果有帮助的话,我正在使用WindowsXP32位 我正在尝试移植一个在Windows和Linux上使用的VisualStudio8项目,以便在android平台上使用它。 该项目相当大,其文件位于多个文件夹中 在尝试使用ndk build构建时,我遇到了很多这样的错误: D:/android-ndk-r8d-windows/android-ndk-r8d/toolschains/arm-linux-androideabi-4.6/prebuild/wi

这是我第一次使用安卓NDK和Cygwin,如果有帮助的话,我正在使用WindowsXP32位

我正在尝试移植一个在Windows和Linux上使用的VisualStudio8项目,以便在android平台上使用它。 该项目相当大,其文件位于多个文件夹中

在尝试使用ndk build构建时,我遇到了很多这样的错误:

D:/android-ndk-r8d-windows/android-ndk-r8d/toolschains/arm-linux-androideabi-4.6/prebuild/windows/bin/./lib/gcc/arm-linux-androideabi/4.6/../../../../../arm linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs/ndkmain/.o:in函数 版本:jni/.cpp:75:错误:未定义对的引用 '获取版本(长*,长*,长*,长*)'

对于本例,以下是MyFile.cpp

#include "../KERNEL/Include/Get_Version.h"

long Version (long *a,
            long *b,
            long *c,
            long *d)
{
    if(get_version(a, b, c, d) == -1)
        return(IDP_ERR_POINTER);

  return (IDP_CORRECT);
}
get_version(long*,long*,long*,long*)在get_version.h头中定义良好,并且可以找到get_version.h头

获取_版本。h:

#ifndef GET_VERSION_H_
#define GET_VERSION_H_


int get_version(long *a, long *b, long *c, long *d);

#endif //#define GET_VERSION_H_
获取_Version.cpp:

#include <stdlib.h>
#include "../Include/Get_Version.h"

int get_version(long *a, long *b, long *c, long *d)
{

    if (a == NULL){ return -1;}
    if (b == NULL){ return -1;}
    if (c == NULL){ return -1;}
    if (d == NULL){ return -1;}

    *a = 3;
    *b = 1;
    *c = 8;
    *d = 2;

  return (0);
}
你需要:


LOCAL_SRC_FILES:=/.cpp/Path/To/Get_Version.cpp

似乎它解决了我的问题,但是我需要将我的每个cpp文件添加到Android.mk?谢谢,没错。这就是你告诉Android构建系统需要构建什么的方式。
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=ndkmain
LOCAL_SRC_FILES :=<MyFolder>/<MyFile>.cpp
include $(BUILD_SHARED_LIBRARY)
APP_STL :=stlport_shared
APP_ABI:= armeabi-v7a