android ndk构建在构建二进制文件时失败。mk:369 我有一个大项目,里面有几百个C++文件,我应该把它们移植到Android上。我是新的项目和NDK以及。我排除了大多数错误,ndk构建过程一直进展到这里:

android ndk构建在构建二进制文件时失败。mk:369 我有一个大项目,里面有几百个C++文件,我应该把它们移植到Android上。我是新的项目和NDK以及。我排除了大多数错误,ndk构建过程一直进展到这里:,android,android-ndk,Android,Android Ndk,Compile++thumb:mylib可能发生以下三种情况之一: 您实际上并没有编译这些函数的代码,可能是因为它被#ifdef包围,或者是因为所讨论的文件没有被构建。您可以检查是否存在与其源相对应的.o文件。您还可以将#error放在函数体中,并验证构建是否失败(我知道这听起来很愚蠢,但它会捕获浪费您时间的愚蠢错误) 这些函数位于未链接到的对象文件或库中。在这种情况下,您需要将缺少的部分添加到链接中 这些函数位于不同的动态库中,将在加载您正在构建的库之前预加载,或者至少在加载依赖它们的函数之

Compile++thumb:mylib可能发生以下三种情况之一:

  • 您实际上并没有编译这些函数的代码,可能是因为它被#ifdef包围,或者是因为所讨论的文件没有被构建。您可以检查是否存在与其源相对应的.o文件。您还可以将#error放在函数体中,并验证构建是否失败(我知道这听起来很愚蠢,但它会捕获浪费您时间的愚蠢错误)

  • 这些函数位于未链接到的对象文件或库中。在这种情况下,您需要将缺少的部分添加到链接中

  • 这些函数位于不同的动态库中,将在加载您正在构建的库之前预加载,或者至少在加载依赖它们的函数之前加载。您可以使用一个特殊的标志来允许共享库中存在未定义的符号-我忘了它是什么,但您可以查找它


MyApp.cpp中是否定义了MyClass类

如果没有,您也需要在本地的\u SRC\u文件中添加MyClass源文件,例如


本地文件:=MyApp.cpp AClass.cpp.

感谢您的快速回答。MyApp.o和MyApp.o.d存在于obj\local\armeabi\objs\mylib中。这些函数在我的项目中,应该放在同一个库中#错误不会在主体函数中调用,因为它之前抱怨没有定义错误。但是在函数使用的地方使用#error会显示出不同的错误,我以前没有看到过,我必须首先解决这些错误。我认为最初的错误是由一个不起作用的库引起的,它没有显示错误。我会尝试解决其他错误,如果没有解决,我会回来。听起来你正在进步。需要记住的一点是,所有的C代码都应该在链接之前进行编译。如果C代码要进入库,那么在未定义的引用错误之前应该发生一个#错误,因为后者是链接器错误而不是编译器错误。是的,它已定义。我认为编译器可能有问题,因为编译器从未真正看到函数。我已经安装了cygwin和所有g++和gcc包、make和gdb以及EclipseCDT。但似乎编译器工作不正常。由于这是一个使用JNI的java项目,所以我不能访问Project属性中C++的设置对话框,而且对文件的制作了解不够,以使编译器正确设置。我可以从make文件手动定义编译器吗?