首先,我不知道我的问题是否有解决办法。
我有以下情况:
。
现在,我还需要为框架库创建一个共享对象。此外,依赖项可以作为共享库使用,因此不需要任何静态链接。
我现在的问题是:
我的问题:
如果我知道我的应用程序将不使用依赖于这个共享对象的框架库的任何代码,那么
我还需要静态链接,如在原来的情况下,仍然工作。
附加信息:
Linux操作系统(Debian Lenny)
)
发布于 2010-08-05 13:09:30
来自man ld
-作为需要的
--no-as-needed
此选项会影响命令行中提到的动态库的ELF DT_NEEDED标记,该选项将在--按需选项之后进行。通常,链接器将为命令行中提到的每个动态库添加一个DT_NEEDED标记,而不管实际是否需要该库。-不需要就恢复默认行为。
我自己没有用过,但听起来像是你要找的东西。
g++ -o your_app -Wl,--as-needed -lframework -la -lb -lc -Wl,--no-as-needed编辑(汉诺建议)
--warn-unresolved-symbols
如果链接器要报告一个未解决的符号(参见选项--未解决的符号),它通常会生成一个错误。此选项使其生成警告。。
发布于 2010-08-05 11:28:08
您可以,但是基本上您必须自己处理所有的动态库。即dlopen库,然后使用dlsym直接查找所需的符号。
这将使您的代码更加复杂,这在多大程度上取决于您在库中的接口。
https://stackoverflow.com/questions/3414157
复制相似问题