zoukankan      html  css  js  c++  java
  • 10.24的注意事项——解决linux_jni编译错误的问题

            公司以opus开源库。因此,我们遇到了一些问题。

    我将新下载的opus1.1替换掉老版本号之后,单独编译opus没问题。但是编译相关的文件就会报错。

    错误信息例如以下:

    g++ -Wall -fPIC -shared libusc_jni.o libusc.a ../api/libopus.a ../api/libspeex.a ../api/libamrnb.a ../api/libpcre.a -o libusc_jni.so -L. -lusc
    /usr/bin/ld: ../api/libopus.a(celt.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
    ../api/libopus.a: could not read symbols: Bad value
    collect2: ld 返回 1
    make: *** [libusc_jni.so] 错误 1

    好奇怪啊!搞了半天,发现是opus的问题!

    。我还以为是别的文件的问题!

    百度原因,是由于Makefile文件没有兼容64导致的,但是Makefile是通过configure自己主动生成的啊。看了configure源代码,发现系统位数是自己主动检測的。并没有什么參数能够进行传递,所以仅仅得手动改动了Makefile。找到 CFLAGS 所在的那一行,然后在末尾加上 :

    -fPIC
    又一次编译,make之前记得make clean一下!问题搞定!




    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    使用一行Python代码从图像读取文本
    FastAI 简介
    OpenCV-Python 轮廓:更多属性 | 二十四
    Numpy和OpenCV中的图像几何变换
    从云计算到边缘计算
    OpenCV-Python 轮廓属性 | 二十三
    c# GetType()和typeof()的区别
    C# 子类父类方法同名,三种处理方式
    C# string 与 String的区别
    decimal
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4826168.html
Copyright © 2011-2022 走看看