MSVC编译多个C程序文件

简介: MSVC编译多个C程序文件

msvc 编译多个文件 跟 之前的 《Linux环境编译多个C程序文件》类似的,编译阶段都只是处理单个文件,只有在链接阶段才是处理多个文件。

还是以 universe 项目为例,代码下载地址在之前文章。下载之后放到 D盘下,如图:

直接运行以下命令编译即可:

cl.exe /c earth.c
cl.exe /c moon.c
cl.exe /c sun.c
cl.exe /c zeus.c

也可以简写,如下:

cl.exe /c earth.c moon.c sun.c zeus.c

提示:不指定 /Fo 默认就取输入文件名。

上面两种编译方式是一样,都只是进行单文件编译,不会进行链接操作。



接下来执行链接操作。如下:

link.exe /DEBUG /OUT:zeus.exe earth.obj moon.obj sun.obj zeus.obj


现在有一个问题,如果 编译 moon.c 的时候指定 /MD 动态链接到 C运行时,其他都是默认的 /MT,会有什么问题呢?如下:

cl.exe /c earth.c
cl.exe /MD /c moon.c 
cl.exe /c sun.c
cl.exe /c zeus.c
link.exe /DEBUG /OUT:zeus.exe earth.obj moon.obj sun.obj zeus.obj

如上图,会冲突,所以必须统一用 MT 或者统一用 MD。


目录
相关文章
|
8月前
|
网络协议 Java API
TCP/IP协议以及UDP(超详细,看这一篇就够了)
TCP/IP协议以及UDP(超详细,看这一篇就够了)
391 0
|
监控 关系型数据库 MySQL
MySQL 5.7在高并发下性能劣化问题的详细剖析
TL;DR MySQL 5.7高并发读写混合场景下rt飙升,业务系统大量超时报错。本文总结了阿里业务场景下遇到的坑,剖析问题背后的原因,帮助读者更好的理解MySQL内核原理,降低升级MySQL 5.7的风险。
9766 0
|
存储 编译器 C语言
C语言基础知识(一)-字节、变量、常量、数据类型以及进制
本文是C语言的基础知识,主要讲解字节、变量、常量、数据类型以及不同进制。
707 0
C语言基础知识(一)-字节、变量、常量、数据类型以及进制
|
安全 C#
C#委托事件的区别
C#委托事件的区别
190 0
|
iOS开发 Swift
Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片
Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePickerController可以轻易地实现从设备图片库和照相机获取图片。 目录 Swift学习笔记4使用UIImagePickerController实现从设备
4330 0
vs2022配置Qt6
vs2022配置Qt6
288 1
|
存储 Linux 调度
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)(上)
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)
【Pyqt5】窗口跳转闪退解决办法
【Pyqt5】窗口跳转闪退解决办法
|
Java 数据库 关系型数据库
优秀的代码都是如何分层的?
好的应用分层应该做到1.方便后续代码进行维护扩展;2.分层的效果需要让整个团队都接受;3.各个层职责边界清晰。本文针对controller,service, mapper三个维度的应用分层进行整理,以优化后续代码的维护
10110 0
|
虚拟化 数据安全/隐私保护
【EulerOS】华为欧拉服务器操作系统安装与使用教程
【EulerOS】华为欧拉服务器操作系统安装与使用教程
4682 0

热门文章

最新文章