我正在尝试使用ndk-build命令为Android构建一个共享对象,源代码编译正常,但后来我收到此错误:
make (e=206): The filename or extension is too long.
Run Code Online (Sandbox Code Playgroud)
如果有任何身体可以告诉我是什么原因导致这个问题以及如何解决它.
谢谢.
您达到Windows命令长度限制.您应该使用一些静态库作为解决方法.通常,人们使用单独的Android.mk文件编译其源代码树的分支include $(BUILD_STATIC_LIBRARY)
,然后将其列为$(LOCAL_STATIC_LIBRARIES)
以"main" 结尾的jni/Android.mkinclude $(BUILD_SHARED_LIBRARY)
.您ndk-build
将加载此"main"makefile,因此它应包括(显式或使用一些嵌套方法)所有静态库makefile.
但这只是一种便利.如果您现在使用单个jni/Android.mk文件,则可以获得相同的结果.
您可能还会发现将静态库列为更容易$(LOCAL_WHOLE_STATIC_LIBRARIES)
- 这样您就可以保证列出这些库的顺序不会导致链接问题.