Han*_* S. 5 c++ linker gcc shared-libraries
首先,我不知道我的问题是否有解决办法.
我有以下情况:
现在我还需要创建框架库的共享对象.此外,依赖项可用作共享库,因此不需要任何静态链接.
我现在遇到的问题:
我的问题:
如果我知道我的应用程序不会使用依赖于此共享对象的框架库的任何代码,是否有任何方法可以忽略某些共享对象依赖项?
有没有办法在没有代码更改的情况下执行此操作?(链接器/编译器开关)
我还需要原始情况中描述的静态链接仍然有效.
附加信息:
从 man ld
--as-needed
--no-as-needed此选项会影响--as-needed选项后命令行中提到的动态库的ELF DT_NEEDED标记.通常,链接器将为命令行中提到的每个动态库添加DT_NEEDED标记,而不管是否实际需要该库.--as-needed导致只为满足常规对象的符号引用的库发出DT_NEEDED标记,这些对象在链接库时未定义,或者,如果在其他DT_NEEDED列表中找不到库,则链接到该点的库,来自另一个动态库的引用.--no-as-need恢复默认行为.
我自己没有用过,但听起来就像你在找什么.
g++ -o your_app -Wl,--as-needed -lframework -la -lb -lc -Wl,--no-as-needed
编辑(由Hanno建议)
--warn悬而未决符号
如果链接器要报告未解析的符号(请参阅选项--unresolved-symbols),它通常会生成错误.此选项使其生成警告.
| 归档时间: | 
 | 
| 查看次数: | 4367 次 | 
| 最近记录: |