写点什么

MSVC 编译多个 C 程序文件

作者:Loken
  • 2022 年 5 月 30 日
  • 本文字数:438 字

    阅读完需:约 1 分钟

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

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



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

cl.exe /c earth.ccl.exe /c moon.ccl.exe /c sun.ccl.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.ccl.exe /MD /c moon.c cl.exe /c sun.ccl.exe /c zeus.clink.exe /DEBUG /OUT:zeus.exe earth.obj moon.obj sun.obj zeus.obj
复制代码



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


更多内容,请访问《FFmpeg原理


发布于: 3 小时前阅读数: 5
用户头像

Loken

关注

音视频工程师 2022.04.21 加入

音视频工程师,个人博客 www.xianwaizhiyin.net

评论

发布
暂无评论
MSVC编译多个C程序文件_音视频_Loken_InfoQ写作社区