是否可以同时使用静态库和动态库编译c程序



我知道在编译c程序时有两种方法可以链接库:

  • 静态:库是;嵌入的";在可执行文件内部
  • 动态:库应该存在于文件系统中。可执行文件依赖于这些库

但是当我们编译c程序时,有没有一种方法可以说:

  • 这个库应该静态嵌入到可执行文件中
  • 这个应该动态链接吗

感谢

您可以使用例如:

gcc file1.c file2.c fileN.c ... -lfoo -lbar -lbaz --static -labc -lbcd -lcde

在这种情况下,foo、bar、baz是动态链接的,如果可用的话是动态库,否则是静态的。

abc、bcd、cde是静态链接的。

您也可以使用

gcc MyProg.c -Wl,-Bstatic -libS1 -libS2 -Wl,-Bdynamic -libD1 -o MyProg.exe

最新更新