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

     2023-02-22     305

关键词:

【中文标题】如何在命令行中编译和链接项目?【英文标题】: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 链接器输出节大小?

】如何在命令行中使gcc链接器输出节大小?【英文标题】:Howtomakegcclinkeroutputsectionsizeatcommandline?【发布时间】:2012-12-2217:42:17【问题描述】:我为MCU编程。代码和数据的大小很重要,编译后我需要知道这些部分的大小。我知道... 查看详情

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

】在命令行中使用maven编译整个项目后如何运行单个类?[复制]【英文标题】:HowdoIrunasingleclassaftercompilingthewholeprojectwithmavenincommandline?[duplicate]【发布时间】:2018-03-2101:29:18【问题描述】:我可以在Eclipse中运行它,但是用命令行... 查看详情

如何在命令行中使用intelc++编译器,并使用openmp和mkl来编译自己的程序,并运算

1、iccIntelC/C++编译器接受遵守ANSIC/C++,ISOC/C++standards,GNUinlineASMforIA-32architecture标准的输入。与linux下常用的gcc兼容并支持更大的C语言扩展,包括源文件、命令行参数、目标文件。不支持gcc的inline方式的汇编。例,f.c#include<stdio.h>... 查看详情

如何在命令行中编译 ZipFile 类(C#)

】如何在命令行中编译ZipFile类(C#)【英文标题】:HowtocompileZipFileclass(C#)incommandline【发布时间】:2014-03-1712:44:13【问题描述】:在我开始描述我的问题之前,我想说我做了所有我应该做的事情,以使ZipFile类正常工作。我的意思... 查看详情

如何在命令行中编译多个java源文件

】如何在命令行中编译多个java源文件【英文标题】:Howtocompilemultiplejavasourcefilesincommandline【发布时间】:2011-06-1514:33:11【问题描述】:我知道运行javacfile1.java会产生file1.class如果file1.java是唯一的源文件,那么我可以说javafile1来... 查看详情

如何在 Windows 的命令行中使用 MinGW 编译器?

】如何在Windows的命令行中使用MinGW编译器?【英文标题】:HowdoIusetheMinGWcompilerfromthecommandlineonWindows?【发布时间】:2013-11-1414:18:17【问题描述】:我已经在我的Windows7机器上安装了BloodshedDev-C++编译器。现在如何从命令行编译?【... 查看详情

Xamarin 形式;条件编译符号在 MSBUILD 命令行中不起作用

】Xamarin形式;条件编译符号在MSBUILD命令行中不起作用【英文标题】:Xamarinforms;ConditionalCompilationSymbolnotworkingfromMSBUILDcommandline【发布时间】:2021-12-2314:00:05【问题描述】:我有一个适用于iOS和Android的XamarinForms项目。该解决方案... 查看详情

如何在命令行中使用 Visual Studio 编译 x64 代码?

】如何在命令行中使用VisualStudio编译x64代码?【英文标题】:Howtocompilex64codewithVisualStudioincommandline?【发布时间】:2011-02-0215:18:32【问题描述】:我想使用Windows命令行编译一个简单的hello-world风格的程序。clfile_name.c很简单。现在... 查看详情

如何在 Mac OS 的命令行中编译 Qt 代码

】如何在MacOS的命令行中编译Qt代码【英文标题】:howtocompileQtcodeincommandlineonMacOS【发布时间】:2011-03-1206:13:44【问题描述】:我下载这个:http://get.qt.nokia.com/qt/source/qt-mac-opensource-4.7.2.dmg并安装它。然后我得到了一个Qthelloworld.cc... 查看详情

java在命令行中编译和运行java

...们把代码部署到Linux服务器上的时候,我们经常需要通过命令行编译和运行Java文件,网上关于这个的方法大多是通过javac-cpfilePath/jarName.jar  javaName.java这种方法。但是加入在f 查看详情

在命令行中正确链接库

】在命令行中正确链接库【英文标题】:ProperlyLinkLibrariesintheCommandLine【发布时间】:2015-10-1318:33:51【问题描述】:前言:我是C++新手,刚开始认真编程。后序:我试图为我在这篇文章中提到的功能/页面发布一个链接,但StackOverf... 查看详情

如何在 Maven 项目的命令行中禁用 jar 创建?

】如何在Maven项目的命令行中禁用jar创建?【英文标题】:Howtodisablejarcreationincommandlineinamavenproject?【发布时间】:2016-10-0922:19:00【问题描述】:我有一个maven项目,我正在为其运行两个单独的构建。在一个构建中,我想通过禁用... 查看详情

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

】如何在实践中解决项目编译中链接库的顺序【英文标题】:Howtosolveinpracticetheorderoflinkedlibrariesincompilationforaproject【发布时间】:2015-11-2702:51:24【问题描述】:我一直在从事一个项目,该项目使用来自许多作者(物理学)的不同... 查看详情

如何在命令行中构建 C++ 文件

】如何在命令行中构建C++文件【英文标题】:howtobuildavc++fileincommandline【发布时间】:2009-04-0809:11:59【问题描述】:如何在命令行中构建一个用VC++开发的项目我不是VisualStudio(2003年或2005年或2008年)【问题讨论】:我不太明白你... 查看详情

如何在 msvc 中编译和链接生成的文件?

】如何在msvc中编译和链接生成的文件?【英文标题】:Howtocompileandlinkgeneratedfileswithinmsvc?【发布时间】:2019-04-1911:53:42【问题描述】:我的msvc2015项目具有带有自定义构建工具的foo.smth文件。该文件用于生成foo1.c和foo2.c源文件,... 查看详情

*忽略* C++和C#如何在命令行中显示百分比[重复]

】*忽略*C++和C#如何在命令行中显示百分比[重复]【英文标题】:*ignore*C++andC#Howtodisplaypercentageinacommandline[duplicate]【发布时间】:2013-10-0914:23:58【问题描述】:当我制作一个在命令行中显示进度的程序时,当进度增长时,如何制作... 查看详情

如何在 jmeter 聚合报告命令行中打印 95 和 99 百分位数?

】如何在jmeter聚合报告命令行中打印95和99百分位数?【英文标题】:Howtoprint95and99Percentilesinthejmeteraggregatereportcommandline?【发布时间】:2017-06-0316:03:54【问题描述】:我正在尝试从命令行在jmeter汇总报告中打印95Percentile和99Percentil... 查看详情

如何在命令行中捕获 OCUnit 的测试失败/成功?

】如何在命令行中捕获OCUnit的测试失败/成功?【英文标题】:HowdoIcatchOCUnit\'stestfail/successincommandline?【发布时间】:2011-06-1401:29:32【问题描述】:我的期望:#构建成功#和#测试失败#实际结果:只有#BuildSucceeded#如何在命令行中获... 查看详情