-
从命令行运行编译器
2018-01-10 14:12:35《C++ primer》 P3介绍的从命令行运行编译器 于是基于VS2013进行了尝试 1、首先配置环境变量,用户变量中path变量添加了 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE C:\Program Files ...《C++ primer》 P3介绍的从命令行运行编译器
于是基于VS2013进行了尝试
1、首先配置环境变量,用户变量中path变量添加了
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
新建lib变量:C:\ProgramFiles (x86)\Microsoft Visual Studio 12.0\VC\lib
新建include变量:C:\ProgramFiles (x86)\Microsoft Visual Studio 12.0\VC\include/
2、运行->cmd->进入目录
//txt编写代码并保存为main.cpp #include<stdio.h> void main() { printf("Hello world!\n"); }
3、出现了error
百度了一圈最终找到了这个error的解决方案
Visual Studio 2013->Visual Studio Tools ->开发人员命令提示 右键选择"属性"查看”目标”中的地址:%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat""
-
C/C++入门(一):从命令行运行编译器
2020-11-20 21:22:31今天学了一下如何从命令行运行编译器,作出以下总结。 一、从命令行运行编译器 如果使用命令行界面,通常是在一个控制台窗口内(例如UNIX系统中的外壳程序窗口或者Windows系统中的命令提示符窗口)编译程序。假如...最近接触的代码都是C++大工程,难免心里有点虚,所以还是决定先从基本的学起,捧起厚厚的C++ Primer(使用C++11标准),一点一点积累,争取摆脱菜鸡行列吧。
今天学了一下如何从命令行运行编译器,作出以下总结和演示。
一、从命令行运行编译器
如果使用命令行界面,通常是在一个控制台窗口内(例如UNIX系统中的外壳程序窗口或者Windows系统中的命令提示符窗口)编译程序。假如main程序保存在文件prog1.cpp(不同编译器使用不同的后缀命名约定,最常见的有.cc,.cxx,.cpp,.cp,.C等)中,可以用以下命令来对其进行编译:
$ CC prog1.cpp
其中CC是编译器程序的名字(在不同操作和编译器系统中,运行C++编译器的命令各不相同。默认情况下,运行GNU编译器的命令是g++,运行微软Visual Studio 2010或2017编译器的命令为cl),$是系统提示符。执行完上面这条命令后编译器会生成一个可执行文件,其中Windows系统会将这个可执行文件命名为prog1.exe,UNIX系统中的编译器会将这个可执行文件命名为a.out。二、运行GNU或微软编译器
1.运行GNU编译器命令
运行GNU编译器的命令是g++:
$ g++ -o prog1 prog1.cpp
其中-o prog1是编译器参数,指定了可执行文件的文件名。注意在UNIX系统中,可执行文件没有后缀,在Windows系统中,后缀为.exe。如果忽略了-o prog1参数,在UNIX系统中编译器会生成一个名为a.out的可执行文件,在Windows系统中则会生成一个名为a.exe的可执行文件。
2.运行MSVS2017(Microsoft Visual Studio 2017 )编译器命令
运行VS2017编译器的命令为cl:
$ cl /EHsc prog1.cpp
此处命令cl调用编译器,/EHsc 是编译器选项,用来打开标准异常处理。微软编译器会自动生成一个可执行文件,其名字与第一个源文件名对应。可执行文件的文件名与源文件名相同,后缀名为.exe。
三、运行可执行文件
1.在Windows系统中运行一个可执行文件
需要提供可执行文件的文件名,可以忽略其扩展名.exe;
$ prog1
在一些系统中,即使文件就在当前目录或文件夹中,也必须显式指出文件的位置,在此情况下,可以键入:
$ .\prog1
"."后跟一个反斜杠指出该可执行文件在当前目录中
2.在UNIX系统中运行一个可执行文件
在UNIX系统中运行一个可执行文件需要使用全文件名,包括文件扩展名:
$ a.out
如果需要指定文件位置,需要用一个"."后跟一个斜杠来指出可执行文件的位置:
$ ./a.out
访问main的返回值的方法依赖于系统。在UNIX和Windows系统中,执行完一个程序后,都可以通过echo命令获得其返回值。
在UNIX系统中,通过如下命令获得状态:
$ echo $?
在Windows系统中,通过如下命令获得状态:
$ echo %ERRORLEVEL%
四、Windows系统下进行操作演示
1.首先在桌面新建个txt文档,输入要执行的源代码,然后保存重命名为“hello-dhq.cpp”
接着在Windows自带的命令提示符界面进行操作,写上以下命令行:cl C:\Users\dhq\Desktop\hello-dhq.cpp
出现如下提示:
这时参照该博客在Path系统变量中添加相应的环境变量D:\VS2017\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86,再次运行出现情况如下:
这说明cl工具路径设置成功,但是出现“stdio.h:不包括路径集”的提示,这表明找不到stdio.h,这时需要配置环境变量:计算机右键打开属性,进入控制面板系统页,选择高级系统设置->环境变量->系统变量
添加INCLUDE和LIB两个环境变量,并分别为其添加变量值,如下图:
添加完之后再次运行得到如下情况(真是曲折啊~):
这下我就不得不怀疑我的include文件夹下没有stdio.h这个头文件,一找,果然没有(裂开)。哎,找个stdio.h复制到include文件夹不知道有没有用,嗯说干就干!我在D:\Windows Kits\10\Include\10.0.17763.0\ucrt路径中找到了stdio.h将其复制到了VS2017的include文件夹下,虽然添加了stdio.h后还会出现一些error提示,不过按照提示的来复制D:\Windows Kits\10\Include\10.0.17763.0\ucrt下的相应的头文件到include文件夹下就可以了,之后出现如下情况:
生成了hello-dhq.exe可执行文件(谢天谢地,真怀疑我当时装VS2017是不是漏了很多东西)但是有报错说无法打开一个库文件kernel32.lib,那我就去D:\Windows Kits\10\Lib\10.0.17763.0\um\x86找了复制到VS2017的lib的x86文件夹下,再次运行说libucrt.lib找不到,我就去D:\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86找了复制到lib的x86文件夹下,再次运行说uuid.lib无法打开,我就去D:\Windows Kits\10\Lib\10.0.17763.0\um\x86下找了复制到lib的x86文件夹下,再次运行,这下,可没再报啥错了!!!!.exe和.obj文件都正常生成,亏我肯陪它玩儿这么久~
接下来试试运行一下这个hello-dhq.exe可执行文件,按照上面第三大部分的第一点说的那样在系统提示符下输入:hello-dhq.exe或者hello-dhq(省略了扩展名),结果总算是正常啦嘿嘿嘿~
其实除了上述方法在Windows自带的命令提示符界面进行操作以外,还有一种方法可以借鉴,也就是在命令行中执行MSVC自带的环境配置工具VsDevCmd.bat,具体的参考此博客
2.除了在Windows自带的命令提示符下运行命令行以外,还可以在开始菜单下vs2017的开发人员命令提示符中(如下图,看不太清楚)输入命令:
然后输入命令行cl /EHsc C:\Users\dhq\Desktop\hello-world.cpp,很快就成功了!!!
运行一下生成的hello-world.exe可执行文件试试:
Perfect,比上面那种方法简单多了!!!! -
VC++6.0编译器(命令行)
2009-07-07 20:18:32注意:这是命令行的编译器,没有任何图形界面!没有命令行编译经验如cl, nmake,gcc等的最好不要下。高手一定要下!初学者推荐下!体积19.2MB 从Microsoft Visual Studio 6.0中Ripper出来的VC++编译器,花了很多... -
vc 命令行下运行
2012-12-14 15:16:36大多数MS Visual C++创建的程序...VC默认安装成功后,并不具备能从命令行编译创建VC程序这一特征。我们必须做如下3步工作: 1 打开DOS命令提示符窗口。 2 在C盘根目录下输入: CD Program Files\Microsoft Visual S大多数MS Visual C++创建的程序用VC编译器是很容易编译并创建出可执行文件的。但有时,你可能需要从命令提示行运行程序。这个例子将阐述如何用命令行编译创建VC程序。
VC默认安装成功后,并不具备能从命令行编译创建VC程序这一特征。我们必须做如下3步工作:
1 打开DOS命令提示符窗口。
2 在C盘根目录下输入:
CD Program Files\Microsoft Visual Studio\VC98\Bin
回车进入到如下目录:
C:\Program Files\Microsoft Visual Studio\VC98\Bin>
3 然后输入VCVARS32再回车,你可以看到如下信息:(VCVARS32是设置环境!!!)
C:\Program Files\Microsoft Visual Studio\VC98\Bin>VCVARS32
Setting environment for using Microsoft Visual C++ tools.
至此相关设置完成,接下来我们将在命令行下编译创建一个VC程序:
1 打开VC,选择NEW,在工程属性页选择“Win32 Console Application”,这里我把它命名为AConsoleApp,
我的工程目录为:D:\MyProgram2\AConsoleApp,然后OK创建一个空的Win32控制台工程。
2 新建一个C++文档main.cpp,输入如下代码:
#include
using namespace std;
int main()
{
cout << "\nC++ is Fun!!!\n";
return 0;
}
保存所有文档,关闭工程。
3 打开DOS命令提示符窗口,使当前目录为D:\MyProgram2\AConsoleApp>(由C盘进入D盘的方法为:C:\>D:按回车,注意在D后面一定要加上冒号!!!),然后输入CL main.cpp(CL命了是要用到编译器 CL.EXE!!!),回车,可以看到如下信息:
D:\MyProgram2\AConsoleApp>CL main.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
main.cpp
C:\Program Files\Microsoft Visual Studio\VC98\include\istream(547) : warning C45
30: C++ exception handler used, but unwind semantics are not enabled. Specify -G
X
C:\Program Files\Microsoft Visual Studio\VC98\include\ostream(234) : warning C45
30: C++ exception handler used, but unwind semantics are not enabled. Specify -G
X
C:\Program Files\Microsoft Visual Studio\VC98\include\ostream(229) : whi
le compiling class-template member function 'class std::basic_ostream< P>
t std::char_traits > &__thiscall std::basic_ostream<>
traits >::put(char)'
C:\Program Files\Microsoft Visual Studio\VC98\include\ostream(234) : warning C45
30: C++ exception handler used, but unwind semantics are not enabled. Specify -G
X
C:\Program Files\Microsoft Visual Studio\VC98\include\ostream(229) : whi
le compiling class-template member function 'class std::basic_ostream<>
hort,struct std::char_traits > &__thiscall std::basic_ostream< P>
signed short,struct std::char_traits >::put(unsigned short)'
C:\Program Files\Microsoft Visual Studio\VC98\include\istream(46) : warning C453
0: C++ exception handler used, but unwind semantics are not enabled. Specify -GX
C:\Program Files\Microsoft Visual Studio\VC98\include\istream(41) : whil
e compiling class-template member function 'bool __thiscall std::basic_istream< P>
har,struct std::char_traits >::ipfx(bool)'
C:\Program Files\Microsoft Visual Studio\VC98\include\istream(46) : warning C453
0: C++ exception handler used, but unwind semantics are not enabled. Specify -GX
C:\Program Files\Microsoft Visual Studio\VC98\include\istream(41) : whil
e compiling class-template member function 'bool __thiscall std::basic_istream< P>
nsigned short,struct std::char_traits >::ipfx(bool)'
C:\Program Files\Microsoft Visual Studio\VC98\include\xstring(525) : warning C45
30: C++ exception handler used, but unwind semantics are not enabled. Specify -G
X
C:\Program Files\Microsoft Visual Studio\VC98\include\xstring(521) : whi
le compiling class-template member function 'void __thiscall std::basic_string< P>
har,struct std::char_traits,class std::allocator >::_Copy(unsigned i
nt)'
C:\Program Files\Microsoft Visual Studio\VC98\include\ostream(296) : warning C45
30: C++ exception handler used, but unwind semantics are not enabled. Specify -G
X
main.cpp(6) : see reference to function template instantiation 'class st
d::basic_ostream > &__cdecl std::operator <<(
class std::basic_ostream > &,const char *)' b
eing compiled
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:main.exe
main.obj
D:\MyProgram2\AConsoleApp>
此时你可以发现目录D:\MyProgram2\AConsoleApp>下已经生成了可执行文件main.exe,您可以在命令行环境下执行它,输入main并回车,结果如下:
D:\MyProgram2\AConsoleApp>main
C++ is Fun!!!
D:\MyProgram2\AConsoleApp>
-
c++程序的编译和与运行
2020-11-07 00:25:53c++程序的编译和与运行(命令行) ...2.从命令行运行编译器 $ cc dome1.cc cc是编译器的名字,$是系统提示符,编译生成可执行文件,后缀.exe. 在windows系统中运行可执行文件,可忽略其扩展名.exe: $dome1 ... -
做Talk!软件的知识点滴(2)--从命令行生成(msdn)
2005-01-28 19:43:00Visual C# 语言概念 从命令行生成通过在命令行上键入 C# 编译器可执行文件的名称 (csc.exe),可以在命令行调用 C# 编译器。如果希望从计算机上的任何子目录调用 csc.exe,可能需要调整路径。本主题提供有关以下内容... -
c语言第一课
2019-09-26 03:08:02编译、运行程序: 程序源文件命名约定: cc、cxx、cpp、cp及.C 从命令行运行编译器: cctest1.cc 其中cc是编译器程序的名字。编译器生成一个可执行文件。Windows系统将会生成可执行... -
第一章
2016-02-24 22:50:19编写一个简单的C++程序# include using namespace std;int main() { cout; return 0; }编译、运行程序 从命令行运行编译器 window 7 安装了VS2010后在cmd下编译运行程序(转) http://zhangbo -
C++Primer (第五版)学习笔记------第一章
2019-09-27 15:37:27从命令行运行编译器 使用命令行界面,通常是在一个控制台窗口内(例如UNIX系统中的外壳程序窗口或者Windows系统中的命令提示符窗口)编译程序。假定我们的main程序保存在文件prog1.cc中,可以用如下命令来编译它 ... -
C++学习笔记(一)
2018-04-02 13:10:00Chapter 1 开始集成开发环境IDE 从命令行运行编译器:$ cc prog1.ccCC是编译器程序的名字,$是系统提示符 IO(输入输出)机制:iostream库——istream(输入流)和ostream(输出流)istream——cin(标准输入)... -
第一章:开始
2021-02-24 15:21:161.1 编写一个简单的C++程序 int main() { return 0; } 1.1.1 编译、运行程序 如何编译取决于使用的操作系统和编译器,如果将...从命令行运行编译器 通过控制台窗口,编译后生成可执行文件,如果是window系统,生成. -
第1章 开始
2021-03-04 16:10:121.1 编写一个简单的C++程序 在大多数系统中,main的返回值被用来表示状态。返回值0表明成功,非0的返回值的含义由系统定义,通常用来指出错误类型。...从命令行运行编译器($是系统提示符,CC是编译器 -
编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
2017-10-07 18:55:00设计思想:定义int sum=0用于求和计算,在编译器运行配置中输入String类的数组,利用Integer.parseInt(arg);将数组转化为int类进行相加,最后输出结果。 程序流程图: 源程序代码:publicclassJavaAppArguments ... -
c++primer基础
2020-09-16 10:55:17《C++ Primer》第五版学习笔记 第一章 开始 ...从命令行运行编译器 假设main程序保存在prog1.cc中。用如下指令编译: $ CC prog1.cc CC是编译器的名字。编译结果会生成一个可执行文件prog1.exe。 -
《C++ Primer》读书笔记
2017-11-12 16:30:00第一章 开始 类型:程序所处理的数据都保存在变量中,而...从命令行运行编译器 for语句 术语表:缓冲区、cerr、clog、表达式 第一部分 C++基础 第二章 变量和基本类型 几种字符类型:char 、wchar_t 、char1... -
模拟Linux命令行方式在Windows下编译C/C++程序(使用VS编译器)
2014-09-17 19:31:183、打开cmd命令行界面, 输入F:换到F盘, 最终定位到test.c所在文件夹, 使用cl编译器编译test.c程序,弹出系统错误。 bin目录下的cl.exe是Microsoft C/C++编译器。 关于打开cmd快捷键的方法:windows+R->弹... -
【Solidity】使用编译器
2017-09-20 10:34:46使用编译器使用命令行编译器Solidity库的构建目标之一是solc,即solidity命令行编译器。 使用solc --help可以为您提供所有选项的解释。 编译器可以生成各种输出,从简单的二进制文件和通过抽象语法树(解析树)的... -
以太坊:Solidity-使用编译器
2019-05-08 13:12:06使用编译器 使用命令行编译器 ...该编译器可以生成各种输出,范围从简单的二进制文件、汇编文件到用于估计“gas”使用情况的抽象语法树(解析树)。如果你只想编译一个文件,你可以运行solc--bin... -
clip命令行插图处理器 v0.8
2020-11-03 08:31:34为您提供clip命令行插图处理器下载,...安装:从源编译要构建剪辑,您需要一个最新的C ++编译器,cmake,fmtlib,libharfbuzz,libfreetype和cairo。然后运行:$ cmake .$ make要将clip二进制文件安装到系统中,请运 -
cli:Tony编程语言的命令行界面-源码
2021-02-12 14:28:51收听更改,并从命令行通过tony进行访问: $ yarn start 运行ESLint: $ yarn eslint 运行TypeScript编译器检查: $ yarn tsc 释放 更改package.json的版本。 创建一个拉取请求以将更改合并到master 。 合并拉取... -
shissue:命令行\ o中的git项目问题-源码
2021-02-02 20:59:02shissue( shell issue )是一种软件,可让您从命令行管理git项目问题,而无需打开浏览器来查找问题。 浏览器是巨大的野兽,有时可能很慢。 命令行小而快速。 没有针对问题的命令行工具,这使我为公共和私人项目... -
C语言构建多文件程序,命令行
2018-04-16 14:02:47_大多数_编译器允许一步构建程序,例如,对于GCC来说,可以使用下列命令行来构建justify程序: gcc -o justify justify .c line.c word.c 这个命令行,我从一开始就没看懂,是跳过去学的后面。现在又在后面的章节中... -
window下搭建C++命令行编译环境
2012-04-09 08:51:11大家都习惯于用visual studio这种集成开发环境来编译源代码,当然它比较方便,但是有时候我们希望能从命令行来编译运行程序,这至少对于我们理解IDE如何工作是有帮助的。 如何动手搭建命令行编译环境,可能大家并不... -
以太坊智能合约的编译器使用
2018-10-17 15:46:57编译器可以生成各种输出,范围从简单的二进制文件和抽象语法树(解析树)上的汇编到气体使用的估计。如果您只想编译单个文件,则将其运行为打印二进制文件。如果你想获得一些更高级的输出变体,最好告诉它使用输出... -
学习系列四>使用编译器
2018-03-26 14:27:42Solidity存储库的一个构建目标是solc,solidity命令行编译器。 使用solc --help为您提供所有选项的解释。 编译器可以生成各种输出,范围从简单的二进制文件和汇编到抽象语法树(解析树),以估计gas使用情况。 如果... -
如何在命令行下编译创建VC程序
2012-01-06 12:00:51如何在命令行下编译创建VC程序 大多数MS Visual C++创建的程序用VC编译器 ...VC默认安装成功后,并不具备能从命令行编译创建VC程序这一特征。我们必须做如下3步工作: 1 打开DOS命令提示符窗口。 -
在命令行下编译创建VC程序
2006-09-13 11:24:00在命令行下编译创建VC程序大多数MS Visual...VC默认安装成功后,并不具备能从命令行编译创建VC程序这一特征。我们必须做如下3步工作:1 打开DOS命令提示符窗口。2 在C盘根目录下输入:CD Program Files/Microsoft Visua -
win关于修改命令行cmd/dos默认路径
2017-08-14 12:03:21你编写的大多数程序都将直接在文本编译器中运行,但有时候,从终端运行程序很有用。(当你想运行已经写好的程序时),此时,我们按win+R–>cmd可以快速打开命令行窗口,但默认路径都是C:\文件名\用户名,很多时候...