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。


目录
相关文章
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
945 0
|
存储 编译器 C语言
Makefile基础教程(变量的介绍和使用)
Makefile基础教程(变量的介绍和使用)
420 0
|
小程序 数据库
微信小程序访问云数据库
微信小程序访问云数据库
385 1
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
824 1
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
658 6
|
缓存 NoSQL 中间件
用golang搭建springboot风格项目结构 gin+gorm
最近学了学go语言,想练习一下用go开发web项目,项目结构弄个什么样呢。
分享一些在 1688 上找一件代发商品的技巧
在1688上找一件代发商品需明确自身需求与定位,筛选可靠供应商,研究商品信息,利用精准搜索和平台推荐,关注活动,并与供应商充分沟通,确保合作顺畅。
|
数据可视化 数据格式 Python
Matplotlib绘图从零入门到实践(含各类用法详解)
本文是一份全面的Matplotlib绘图库教程,涵盖了从基础到高级的各类用法,包括安装、基础图形绘制、调节设置、数值处理、图形美化、动画制作等,并提供了理论讨论和实例项目,旨在帮助读者从零开始学习并掌握Python中的Matplotlib绘图。
792 0
|
算法 安全 Linux
Ctfshow web入门 PHP特性篇 web89-web151 全(二)
Ctfshow web入门 PHP特性篇 web89-web151 全(二)
672 0
|
JavaScript 前端开发 网络协议
从理论到实践:全面剖析Python Web应用中的WebSocket实时通信机制
【7月更文挑战第17天】WebSocket在实时Web应用中扮演重要角色,提供全双工通信,减少延迟。本文详述了Python中使用`websockets`库创建服务器的步骤,展示了一个简单的echo服务器示例,监听8765端口,接收并回显客户端消息。客户端通过JavaScript与服务器交互,实现双向通信。了解WebSocket的握手、传输和关闭阶段,有助于开发者有效利用WebSocket提升应用性能。随着实时需求增长,掌握WebSocket技术至关重要。
995 6