Visual c++ 是否可以将.dll链接到.lib?

Visual c++ 是否可以将.dll链接到.lib?,visual-c++,linker,Visual C++,Linker,这是我的困境:我正试图创建一个.dll版本的项目。此项目使用当前构建为debug.libs的V8和CURL库。我想把它们打包在一个可以共享的DLL中。我知道我需要用uu declspecdllexport修改我的代码,但这是另一个问题 我是否需要将V8和CURL库编译为DLL,然后以某种方式将它们封装在我自己的DLL中?如果CURL库的.lib没有.DLL,那么它们肯定是静态库。当您将它们链接到DLL时,这些库中的代码将链接到您的DLL。我通常必须在我的项目中包括您案例中的依赖项的源代码V8和C

这是我的困境:我正试图创建一个.dll版本的项目。此项目使用当前构建为debug.libs的V8和CURL库。我想把它们打包在一个可以共享的DLL中。我知道我需要用uu declspecdllexport修改我的代码,但这是另一个问题


我是否需要将V8和CURL库编译为DLL,然后以某种方式将它们封装在我自己的DLL中?

如果CURL库的.lib没有.DLL,那么它们肯定是静态库。当您将它们链接到DLL时,这些库中的代码将链接到您的DLL。

我通常必须在我的项目中包括您案例中的依赖项的源代码V8和CURL,并以这种方式进行构建,以使它们完全合并,而不会带来额外的麻烦


如果您有lib,并且链接到这些lib,您应该将它们合并。

不,只需链接静态v8和curl.libs,这样它们的代码就会包含在您的dll中。当我这样做时,使用/MDd/dll构建我的项目,我得到的错误是“LIBCMTD.libinvag.obj:error LNK2005:_无效_参数已经在msvctd.libMSVCR90D.dll中定义”,这让我相信我确实需要将V8和CURL编译为dll。有什么建议吗?没有,您只需要使用相同的编译器设置重新编译这些静态库/他们也需要MD,不支持混合CRT版本。