35 c windows dll build visual-c++
我已经做了大约20年的C,但我从来没有构建过DLL; 我总是喜欢静态链接.
我使用命令行--cl.exe等 - 和gnumake makefiles来构建我的Windows应用程序.
我现在想构建一个DLL,我很困惑.
最终,我将最终得到.lib和.dll..lib包含存根代码,该代码在运行时加载DLL并使用其中的代码.
我一直在查看lib和link的命令行,但是我不知道应该做什么,产生这个输出.
所以我有一些问题;
cl是否需要任何其他参数,以表明它正在为DLL编译?(我知道DLL导出的原型需要__declspec(dllexport)).
我知道链接需要/ dll作为参数.
我会运行lib 和 link,分别生成.lib和.dll,还是会链接生成两者?
我还需要知道什么?
小智 38
在命令行上使用:
cl.exe /LD <files-to-compile>
或者,如果您更喜欢更详细和更明确的版本:
cl.exe /D_USRDLL /D_WINDLL <files-to-compile> <files-to-link> /link /DLL /OUT:<desired-dll-name>.dll
类似于 Ebow Halm 的回答,但使用 .def 文件列出导出的函数和较新的命令行参数:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat" && cl /O2 /Iall /Iyour /Iincludes /D_USRDLL /D_WINDLL /DOTHER_DEFINES <libs> <source files> /LD /Fe<dll name> /link /DEF:<def name>.def
参考:
| 归档时间: | 
 | 
| 查看次数: | 49449 次 | 
| 最近记录: |