如何在命令行中编译和链接项目?

Posted

技术标签:

【中文标题】如何在命令行中编译和链接项目?【英文标题】:how to compile and link project in command line? 【发布时间】:2016-11-04 10:11:14 【问题描述】:

使用Visual Studio,我写了一个C++程序MyCat,所以它可以在VS IDE中编译生成一个MyCat.DLL文件。

另外,我可以在命令行中构建它,利用解决方案文件MyCat.sln

set VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
set VisualStudioVersion = 12.0
path=C:\Windows\Microsoft.NET\Framework\v4.0.30319\;%path%
msbuild.exe MyCat.sln /p:Configuration=Debug /clp:Summary /nologo /fileLoggerParameters:LogFile=MyCat.Debug.log;Verbosity=normal;Encoding=UTF-8

但是,不使用解决方案文件(.sln)或vc项目文件(MyCat.vcxproj)怎么办?

我知道C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin下有一个编译器cl.exe,可以编译.h.cpp文件。

但是链接器在哪里以及如何生成目标.DLL.EXE 文件?

【问题讨论】:

链接器名为link,还有一个名为lib 的图书管理员工具。安装的vc 子文件夹有一些批处理文件来为工具设置适当的环境变量。 好的,但是如何在命令行中执行,给定一个 .sln 和一些 .vcxproj 文件? msdn.microsoft.com/en-us/library/527z7zfs.aspx 如果您担心命令行选项和/或参数,您应该知道配置参数包含一个“命令行”菜单项,其中所有选项/参数都是可见的。 【参考方案1】:

我无法添加评论,所以我将其添加为答案。

如果您搜索过这个网站,您会发现: How to build a DLL from the command line in Windows using MSVC

效果很好。

编辑:查看 Ebow Halm 的答案,然后投票给他 :)

【讨论】:

以上是关于如何在命令行中编译和链接项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在命令行中使 gcc 链接器输出节大小?

Android NDK编译如何强制使用libc++.a的静态链接库

在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]

对class文件进行反编译

在 Linux 命令行中使用 tcpdump 抓包 | Linux 中国

如何在实践中解决项目编译中链接库的顺序