Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何仅使用静态库或共享库?_C++_Libraries - Fatal编程技术网

C++ 如何仅使用静态库或共享库?

C++ 如何仅使用静态库或共享库?,c++,libraries,C++,Libraries,我最近读到了关于静态库和共享库之间的区别,但是我用VisualStudio和GLUT创建的应用程序需要这两种库。链接器说,当我尝试仅使用dynamic时,存在未定义的引用。Windows说我需要“glut32.dll”才能让应用程序工作。也许我理解错了?您所指的库不包含任何实际代码,但它只是通过提供附加信息来加载dll h文件还仅提供dll函数使用的签名信息 看看:不知道你的意思是什么。但库是静态链接还是动态链接取决于,或者更确切地说,取决于您在程序中如何访问它。您仍然可以静态链接.dll。据我

我最近读到了关于静态库和共享库之间的区别,但是我用VisualStudio和GLUT创建的应用程序需要这两种库。链接器说,当我尝试仅使用dynamic时,存在未定义的引用。Windows说我需要“glut32.dll”才能让应用程序工作。也许我理解错了?

您所指的库不包含任何实际代码,但它只是通过提供附加信息来加载dll

h文件还仅提供dll函数使用的签名信息


看看:

不知道你的意思是什么。但库是静态链接还是动态链接取决于,或者更确切地说,取决于您在程序中如何访问它。您仍然可以静态链接
.dll
。据我所知,我只能使用静态libs来访问包含所有libs的单个可执行文件,或者只使用动态libs来访问包含大量dll的轻型可执行文件。对于不能作为dll使用的库,静态链接是必需的,如果没有.LIB版本的库,您需要将其用作DLL。你不能把一个变成另一个(微不足道)。对于DLL,您还需要一个“存根库”(这基本上是应用程序和DLL之间的“钩子”或“连接”)。因此,我需要同时使用这两个?也许您可以说您正在尝试静态链接的库。有些库通常仅作为DLL分发,因此如果要静态链接,则必须重新编译它们