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。


目录
相关文章
|
9月前
|
编译器 C语言 Windows
Qt 使用MinGW编译器调用MinGW编译生成的dll
Qt 使用MinGW编译器调用MinGW编译生成的dll
133 0
|
11月前
|
安全 Linux 编译器
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
|
自然语言处理 编译器 Linux
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(二)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
481 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(二)
|
存储 Ubuntu Unix
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(一)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
284 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(一)
|
NoSQL 编译器 Linux
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(三)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
245 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(三)
|
Linux C++ Windows
MSVC编译动态库
MSVC编译动态库
168 0
|
XML 并行计算 Linux
MSVC编译静态库
MSVC编译静态库
268 0
|
Linux C语言 C++
Linux环境编译单个C程序文件
Linux环境编译单个C程序文件
208 0
|
Ubuntu 编译器 Linux
Linux环境编译多个C程序文件
Linux环境编译多个C程序文件
414 0
|
前端开发 编译器 iOS开发
Clang编译OC程序的常用命令
在Objective-C开发过程中,尤其在了解某些功能的底层实现时,常用到Clang编译器的命令。这篇文章是简单了解Clang和Clang的常用指令。
410 0
Clang编译OC程序的常用命令