概述
之前一直用Mac自带的g++对C++源文件进行命令行编译,这两天想转到windows平台上,发现命令行并不能直接用。因此,在这里记录一下简单的编译方法。
本文主要整理了一下两个方法:
1. 利用MinGW进行g++安装
2. 利用Visual Studio自带的开发工具
一、方法1
一开始参照这个链接里的方法进行配置,一切安装正常。
创建测试代码stl_map.cpp,如下所示。
#include <iostream>
#include <string>
#include <map>
using namespace std;
class MyCompare {
public:
bool operator()(const string &s1, const string &s2) const{
return s1.length() < s2.length();
}
};
int main(){
map<string, int, MyCompare> test;
test["Bob"] = 90;
test["Alice"] = 88;
test["Lily"] = 78;
for(map<string, int>::iterator iter = test.begin(); iter != test.end(); ++iter){
cout << iter->first << endl;
}
return 0;
}
当我编译下面的程序(g++ -std=c++11 stl_map.cpp)并运行生成的a.exe文件的时候,发现如下错误。
参考的网上相似的错误,认为是在调用链接库的时候,可能优先调用了其它路径下的同名lib。
因此,我首先把C:MinGWbin在用户环境变量的PATH的序列上升到第一位。重启终端编译,发现并无卵用。
这是因为,PATH变量的值是用户变量中的值与系统变量中的值的叠加,只不过系统环境变量对所有用户起作用,而用户环境变量只对当前用户起作用。那么很有可能是,系统环境变量里的PATH中某同名lib的优先级跑到C:MinGWbin前面去了。
所以,删去用户环境变量里PATH的C:MinGWbin,在系统环境变量PATH的值前插入“C:MinGWbin;”。重启终端编译并运行,成功,输出结果如下。
需要注意的是,因为这里我们把MinGWbin提前,所以之后我们用到其他同名lib的时候,不可避免地也会遇到这种状况。
二、方法2
方法2主要是按照微软官方文档,它有一个前提是系统为Windows10,并且已经安装了Visual Studio 2015及以上。满足上述前提,可进行如下操作对c++文件进行编译。
1. 打开“开发人员命令提示”。
打开方法参考这篇微软文档。一般来说,我们直接在“开始>应用程序”里就可以找到开发人员命令提示。不过也有意外,这时可以在计算机中手动查找这个文件,文件路径为“C:ProgramDataMicrosoftWindowsStart MenuProgramsVisual Studio 2017Visual Studio Tools”,如下所示。
如果觉得每次从这个路径打开麻烦的话,可以打开Visual Studio,进入“工具>外部工具”,操作如下。
- 选择“添加”按钮,为新菜单项输入“标题”,例如 Command Prompt。
- 在“命令”字段中,指定要启动的文件,例如 %comspec% 或 C:WindowsSystem32cmd.exe。
- 在“参数”字段中,指定可在其中找到要使用的特定命令提示的位置,例如 /k “C:Program Files (x86)Microsoft Visual Studio2017CommunityCommon7ToolsVsDevCmd.bat”(此命令启动随 Visual Studio 2017 Enterprise 一起安装的开发人员命令提示)。 根据 Visual Studio 版本和安装位置更改此值。
- 为“初始目录”字段选择一个值,例如“项目目录”。
- 选择“确定” 按钮,系统便添加了新菜单项,我们就可以从“工具”菜单访问命令提示符,如下所示。
2. 创建新目录来保存程序
在“开发人员命令提示”窗口中,输入 cd 命令,以将目录更改为驱动器根目录。 输入 md examples 命令,以创建示例代码的目录。 然后输入 cd examples 命令,以使其成为当前工作目录。 这就是第一个程序运行的位置。
这个步骤可以省略。
3. 编译
在步骤2目录下或者任意目录下创建一个测试文件hello.cpp,内容如下:
#include <iostream>
using namespace std;
void main() {
cout << "Hello, world, from Visual C++!" << endl;
}
在文件目录下,输入 cl /EHsc hello.cpp 来编译你的程序。编译器的输出如下所示:
Microsoft (R) C/C++ 优化编译器版本 19.00.23504 适用于 x86 版权所有 (C) Microsoft Corporation。
保留所有权利。 hello.cpp Microsoft (R) 增量链接器版本 14.00.23504.0 版权所有 (C) Microsoft Corporation。
保留所有权利。 /out:hello.exe hello.obj
4.运行
若要运行hello.exe程序,直接在命令提示出输入hello。
最后
以上就是甜美信封为你收集整理的C++命令行编译工具:MinGW的g++安装、开发人员命令提示的全部内容,希望文章能够帮你解决C++命令行编译工具:MinGW的g++安装、开发人员命令提示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复