【发布时间】:2011-09-29 17:30:48
【问题描述】:
这是我的困境:我正在尝试创建我的项目的.dll 版本。该项目使用当前构建为调试.libs 的 V8 和 CURL 库。我想将它们全部打包在一个可以共享的 DLL 中(我知道我需要使用 __declspec(dllexport) 更改我的代码,但这是一个单独的问题)。
我是否需要将 V8 和 CURL 库编译为 DLL,然后以某种方式将它们包装在我自己的 DLL 中?
【问题讨论】:
-
不,只需链接静态 v8 和 curl .libs,以便它们的代码包含在您的 dll 中。
-
当我这样做时,使用 /MDd /DLL 构建我的项目,我收到错误消息说 'LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in MSVCRTD.lib(MSVCR90D.dll )' 这让我相信我确实需要将 V8 和 CURL 编译为 DLL。有什么建议吗?
-
不,您只需要使用相同的编译器设置重新编译那些静态库。它们也需要 /MD,不支持混合 CRT 版本。
标签: visual-c++ linker