libvpx库的yasm编译如何生成-fPIC位置无关代码?

金斗网络-网站技术2 2015-09-12 05:01:12
我在编译时需要连接libvpx静态库,提示我需要使用-fPIC参数重新编译位置无关的libvpx库
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/libvpx.a(subpixel_mmx.asm.o): relocation R_X86_64_PC32 against symbol `vp8_bilinear_filters_x86_8' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:518: recipe for target 'libgd.la' failed
make[2]: *** [libgd.la] Error 1
make[2]: Leaving directory '/root/libgd/libgd-2.1.1/src'
Makefile:436: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/root/libgd/libgd-2.1.1/src'
Makefile:331: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1


libvpx的./configure --help里面有个--enable-pic选项,开启了无效,configure后查看Makefile中的CFLAGS和CXXFLAGS并没有加入-fPIC参数。
于是我手动在CFLAGS和CXXFLAGS还有ASFLAGS里面添加了-fPIC参数
CFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH) -fPIC
CXXFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH) -fPIC
ASFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT)/ -I$(SRC_PATH)/ -fPIC/


然后make,结果yasm报错:
    [AS] vpx_ports/emms.asm.o
yasm: FATAL: unrecognized object format `PIC/'
Makefile:179: recipe for target 'vpx_ports/emms.asm.o' failed
make[1]: *** [vpx_ports/emms.asm.o] Error 1
Makefile:17: recipe for target '.DEFAULT' failed
make: *** [.DEFAULT] Error 2


如果去掉ASFLAGS中的-fPIC-fPIC参数,前面链接的时候就会提示
/libvpx.a(subpixel_mmx.asm.o): relocation R_X86_64_PC32 against symbol `vp8_bilinear_filters_x86_8' can not be used when making a shared object; recompile with -fPIC

我改如何做才能编译 位置无关的libvpx静态库?
...全文
649 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
g41173985 2021-07-03
  • 打赏
  • 举报
回复

./configure --enable-pic --enable-static --enable-shared --as=yasm --target=generic-gnu

seven332 2016-03-08
  • 打赏
  • 举报
回复
试下 yasm 加入 -DPIC
  • 打赏
  • 举报
回复
没有搞定~~~暂时放下了
上清灵宝道人 2015-11-18
  • 打赏
  • 举报
回复
同问,搞了好久都没有搞定,楼主解决了吗?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧