我正在编写一个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
? 后果是系统依赖的吗?