为什么我遇到cygwin错误?

问题描述

|
static jboolean libinit(JNIEnv *env,jobject obj,jint sdk) {
/*
#include <sys/system_properties.h>
   int sdk;
   char c[PROP_VALUE_MAX];
if(__system_property_get(\"ro.build.version.sdk\",c) > 0) sscanf(c,\"%d\",&sdk);
else sdk = 8;
*/
     __android_log_print(ANDROID_LOG_INFO,\"liblossless\",\"libinit: sdk=%d\",sdk);
    if(!libhandle) {
        if(sdk < 8) libhandle = dlopen(\"/data/data/net.avs234/lib/libatrack8.so\",RTLD_NOW);
        else libhandle = dlopen(\"/data/data/net.avs234/lib/libatrack9.so\",RTLD_NOW);
    if(libhandle) {
        libmedia_pause = (typeof(libmedia_pause))     dlsym(libhandle,\"libmedia_pause\");
    libmedia_resume = (typeof(libmedia_resume)) dlsym(libhandle,\"libmedia_resume\");
    libmedia_start = (typeof(libmedia_start)) dlsym(libhandle,\"libmedia_start\");
    libmedia_stop = (typeof(libmedia_stop)) dlsym(libhandle,\"libmedia_stop\");
    libmedia_write = (typeof(libmedia_write)) dlsym(libhandle,\"libmedia_write\");
    libmediacb_start = (typeof(libmediacb_start)) dlsym(libhandle,\"libmediacb_start\");
    libmediacb_stop = (typeof(libmediacb_stop)) dlsym(libhandle,\"libmediacb_stop\");
        libmediacb_write = (typeof(libmediacb_write)) dlsym(libhandle,\"libmediacb_write\");
                libmediacb_wait_done = (typeof(libmediacb_wait_done))         dlsym(libhandle,\"libmediacb_wait_done\");
        }
    }
    __android_log_print(ANDROID_LOG_INFO,\"libinit: handle=%p\",libhandle);
    return libhandle != 0;
}

static jboolean libexit(JNIEnv *env,jobject obj) {
   int ret = 0;
     __android_log_print(ANDROID_LOG_INFO,\"libexit\");
    if(libhandle) {
        ret = dlclose(libhandle) ? 0 : 1;
        libhandle = 0;
    }
    return ret;
}
用cygwin编译会给我一个错误:
    /cygdrive/C/androidndk4/apps/lossless/project/bin/ndk/local/armeabi/objs/lossles
s / main.o:在函数
libexit\':
        /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:247: undefined referenc
e to
dlclose\中         / cygdrive / C / androidndk4 / apps / lossless / project / bin / ndk / local / armeabi / objs / lossles s / main.o:在功能“3ѭdlopen\”中         /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:228:未定义referenc e至
dlsym\'
        /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:229: undefined referenc
e to
dlsym\'         /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:230:未定义referenc e至
dlsym\'
        /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:231: undefined referenc
e to
dlsym\'         /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:232:未定义referenc e至
dlsym\'
        /cygdrive/C/androidndk4/apps/lossless/project/bin/ndk/local/armeabi/objs/lossles
s/main.o:/cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:233: more unde
fined references to
dlsym\',然后按照         / cygdrive / C / androidndk4 / apps / lossless / project / bin / ndk / local / armeabi / objs / lossles s / main.o:在功能
libinit\':
        /cygdrive/C/androidndk4/apps/lossless/project/jni/main.c:225: undefined referenc
e to
dlopen\中         collect2:ld返回1退出状态         制作:* [/ cygdrive / C / androidndk4 / apps / lossless / project / bin / ndk / local / armeabi / l iblossless.so]错误1     

解决方法

        您的错误是提到“未定义的引用”。这意味着未定义您正在使用的函数(dlopen,dlclose,dlsym等)。检查这些文件是否包含正确的头文件,如果这些函数来自共享库,请检查是否正确链接了所需的库。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...