我的问题是这个问题的延伸
我想链接2个库 - foo并且bar更喜欢静态用于foo和动态用于bar.如果我使用
g++ -static -lfoo -lbar
Run Code Online (Sandbox Code Playgroud)
它试图找到foo和bar的静态存档.当我将命令更改为
g++ -Wl,-Bstatic -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed
Run Code Online (Sandbox Code Playgroud)
根据上面的SO问题,这是我得到的错误:
ld: unknown option: -Bstatic
Run Code Online (Sandbox Code Playgroud)
更新:我正在使用OSX,如果这有任何区别
我们在这里处理GNU链接器吗?你能告诉我们"ld -v"的输出吗?
编辑:这看起来不像GNU的ld,所以这就是无法识别-Bstatic选项的原因.似乎Apple的ld不支持很好地混合静态和动态库; 请参阅:Mac OS上的混合静态和动态链接.
| 归档时间: |
|
| 查看次数: |
6508 次 |
| 最近记录: |