我有一个类MyClass
这是静态库的一部分 MyLibrary
. MyClass
包括 <media/NdkMediaDrm.h>
.
MyLibrary
有一个构建静态库的 Android.mk 文件。在此我链接了媒体库:
LOCAL_LDLIBS := -lmediandk
但是我在编译时收到以下错误消息:
ld: error: ./obj/local/armeabi-v7a/libMyLibrary.a(MyClass.o): multiple definition of 'PROPERTY_VENDOR'
ld: ./obj/local/armeabi-v7a/libMyLibrary.a(MyLibrary.o): previous definition here
对于 PROPERTY_VERSION
我得到了同样的错误, PROPERTY_DESCRIPTION
, PROPERTY_ALGORITHMS
和 PROPERTY_DEVICE_UNIQUE_ID
.
谁知道这是怎么回事?
最佳答案
这似乎是 NDK header 中的错误,更具体地说,是 media/NdkMediaDrm.h
header 中的错误。每次包含它时,它都会定义这些全局变量的新拷贝。
解决方法是不包含此特定 header ,除非您确实需要它。如果您确实需要将其包含在多个文件中,您可以对其进行编辑和更改
const char *PROPERTY_VENDOR = "vendor";
进入
#define PROPERTY_VENDOR "vendor"
(对于所有其他字符串常量也类似)。
关于Android 链接 lmediandk : multiple definition of PROPERTY_VENDOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174935/