我知道在编译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