1

我正在编写一个包 MyPak,其中包含一个库 MyLib 和一个可执行的 MyExe。两者都依赖于第三方库 Foobar。根据系统的不同,Foobar 可以作为共享库或静态库使用。我也可以自由选择是否共享 MyLib 或静态。

如果我选择将 MyLib 编译为共享库,那么如果 Foobar 也可作为共享库使用,那将是有意义的。MyExe 的链接线将类似于以下内容

gcc -g myexe.c /path/to/mylib.so /path/to/foobar.so

在这里链接静态 foobar 有什么含义,即

gcc -g myexe.c /path/to/mylib.so /path/to/foobar.a

? 这是否被认为是不好的做法?它对性能有负面影响吗?

同样,如果 MyLib 是静态的,这样做会不会很痛

gcc -g myexe.c /path/to/mylib.a /path/to/foobar.so

? 后果是否取决于系统?

4

0 回答 0