Windows C++Eclipse MinGW链接动态和静态库

Windows C++ Eclipse MinGW link both dynamic and static library

本文关键字:静态 动态 链接 C++Eclipse MinGW Windows      更新时间:2023-10-16

我是C++编程的新手。我的程序中有两个库,一个需要动态链接,另一个需要静态链接,如何在Eclipse中设置?我正在使用Eclipse CDT+MinGW+Windows 7。

谢谢。

这里还不完全清楚您想要的是什么。

静态与动态的大部分内容都在库本身,而不是如何链接到它。你可以有一个静态库,它基本上只是一个对象文件的集合,被塞进一个文件中,并有一个目录来告诉哪些部分最初是哪些文件。

你也可以有一个DLL。创建DLL时,链接器通常还会为该DLL创建链接库。这个库基本上只包含存根——足够的信息,这样链接器就可以将指向DLL的链接插入到另一个DLL或可执行文件中。

当你使用DLL时,你基本上有三个选项来使用它:

  1. 最常见的情况是:DLL将在加载父可执行文件时加载
  2. delaylod:除非你真的使用了其中的一个函数,否则不会加载该DLL(例如,如果你有一个只在Windows Vista或更新版本下使用的特殊DLL,那就很方便了)
  3. 显式动态链接。在这里,您根本不告诉链接器DLL或相关的库。调用LoadLibraryGetProcAddress来加载库,并获得一个可调用的函数地址