msvc命令行编译

常用编译选项

更多编译选项介绍见:
VS 运行库MT、MD的区别 - 简书
Debug 和 Release 编译方式

cl /MD /EHsc /nologo /O1 /GF /Fe4.exe 4.cpp

/MD 使用动态链接库 /MT静态链接库
/EHsc指定异常处理模型
/O1空间优化 /O2速度优化 /Od不优化
/GF合并重复的字符串,并将字符串常量放到只读内存,防止被修改
/Fe<filename>或者/Fe: <filename>指定输出文件名(后者有空格)

uft-8 字符集处理

字符集设置分为源字符集执行字符集
源字符集是cpp文件的字符集,执行字符集是程序中存储符号用的字符集。这两者没有任何直接的联系,你完全可以使用UTF-8写代码,用GBK执行
详细可以看微软的文档
cl.exe提供了两个选项来设置:
/source-charset:<IANA_name|.CPID>
/execution-charset:<IANA_name|.CPID>
分别指定源字符集和执行字符集。源字符集必须和文件编码方式相同。
使用字符集名字(IANA_name)和代码页标号(CPID)均可,例如/source-charset:utf-8/source-charset:.65001都指定源字符集为utf-8,二者对应表可查看微软的文档
/utf-8则同时指定执行字符集和源字符集为utf-8

编译静态库和动态库

VisualStudio2019构建C/C++静态库和动态库(dll)(文末附源码)_张凯-CSDN博客_dll动态链接库
上面这篇文章写的很详细。

来填个坑:msvc命令行编译静态库和动态库_JackDual的博客-CSDN博客

查看一个lib的导出函数:
dumpbin /EXPORTS xxx.lib
查看一个lib是动态库还是静态库
lib /list xxx.lib
输出是xxx.obj则是静态库,xxx.dll则是动态库

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值