我主要在 Windows 中工作,最近我开始在 Linux 中工作。我有个疑问。我在 Windows 中使用 Visual Studio 作为 IDE,在 Linux 中使用 Makefile。
Windows 中有两种类型的库(VC++),静态库(.lib)和 DLL。很明显(不是吗?)如果我与 lib 文件链接,我使用的是静态链接,否则是动态链接。
现在当我使用 g++ 编译器时,为什么我需要明确提及-Bstatic/-static
或Bdynamic/-dynamic
标记。因为如果文件是 .a 文件,那么我必须使用静态链接,如果文件是 .so 我使用动态链接。