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

时间:2012-10-02 03:05:01

标签: c++ windows eclipse mingw eclipse-cdt

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

感谢。

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚你在这里的目标。

静态与动态的大多数都在库本身,而不是你链接到它的方式。你可以拥有一个静态库,它基本上只是一个目标文件的集合,一起填充到一个文件中,带有一个目录来告诉哪些部分最初是哪些文件。

您也可以拥有DLL。创建DLL时,链接器通常也会为该DLL创建链接库。这个库基本上只包含存根 - 足够的信息,因此链接器可以将DLL的链接插入到另一个DLL或可执行文件中。

当您使用DLL时,基本上有三个选项可供使用:

  1. 最常见的情况:DLL将在加载父可执行文件时加载。
  2. delayload:除非您实际使用该函数,否则不会加载该DLL(如果您有一个特殊的DLL,例如Windows Vista或更新版本,则会使用它)。
  3. 显式动态链接。在这里,您根本不告诉链接器有关DLL或相关库的信息。您可以调用LoadLibraryGetProcAddress来加载库,并获取可调用的函数地址。