g ++链接器无法识别-Bstatic

S B*_*S B 7 linker g++

我的问题是这个问题的延伸

我想链接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,如果这有任何区别

Adi*_*ann 6

我们在这里处理GNU链接器吗?你能告诉我们"ld -v"的输出吗?

编辑:这看起来不像GNU的ld,所以这就是无法识别-Bstatic选项的原因.似乎Apple的ld不支持很好地混合静态和动态库; 请参阅:Mac OS上的混合静态和动态链接.