栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux gcc编译时强制链接并依赖一个库(即使未使用)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux gcc编译时强制链接并依赖一个库(即使未使用)

  同事报了个LINUX的BUG,字体方向不对。吾心里奇怪。今天专门研究了一下:

  1. 在开发环境中测试,正常。
  2. 使用JAVA运行,正常。
  3. 使用启动器,错误。

  为什么错误?吾一想就明白了:字体库没有正确加载。吾之前已经改名了,以为JDK能正确加载,结果还是出了问题:

ldd Office | grep freetype
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f1523fd2000)

  怎么办?吾把接口名改了再编译JDK,也没有解决。真是诡异无比。怎么办?强制链接。在网上搜索了半天,终于找到了解决办法:

gcc ...... 
    -Wl,--no-as-needed -ltsfreetype -Wl,--as-needed

# tsfreetype要能找到。
# 对于静态库:
# -Wl,--whole-archive -ltsfreetype -Wl,--no-whole-archive

  再看:

ldd Office | grep freetype
libtsfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libtsfreetype.so.6 (0x00007f38ad6f0000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f38a838b000)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号