想要使用控制台来编译程序而不是用IDE,首先需要安装MinGW。
- 下载MinGW
将MinGw安装在C:\MinGw下,打开MinGW Installation Manager,选择Basic Setup,勾选mingw32-base-bin,mingw32-gcc-g+±bin,msys-base-bin。
点击菜单栏中的apply changes。 - 添加环境变量
我的电脑->属性->高级系统设置->环境变量->系统变量
系统变量->Path->编辑->新建->C:\MinGW\bin->确定
系统变量->新建->变量名:LIBRARY_path->变量值:C:\MinGW\lib->确定
系统变量->新建->变量名:C_INCLUDE_PATH->变量值:C:\MinGW\include->确定
到C:\MinGW\bin路径下,将mingw32-make.exe复制一份重命名为make.exe。这样就可以执行make命令。
- 检查g++能否正常运行
在cmd中输入g++ -v
- 编写测试程序
#include <iostream>
int main() {
std::cout << "Hello commnad line." << std::endl;
}
测试
命令说明:
g++ -Wall -std=c++14 main.cpp -o main.exe
使用g++编译器,-Wall提示所有错误和警告,使用c++14标准,编译main.cpp文件,输入可以执行文件名称main。
当有多个文件时
#include <iostream>
class obj {
public:
obj(int val);
~obj() {}
int getVal();
void setVal(int a);
private:
int m_val = 0;
};
#include "obj.h"
obj::obj(int val):
m_val(val) { std::cout << "obj construct" << std::endl;}
int obj::getVal() {return m_val;}
void obj::setVal(int a) {this->m_val = a;}
#include <iostream>
#include "obj.h"
int main() {
std::cout << "Hello command line." << std::endl;
obj t(1);
std::cout << t.getVal() << std::endl;
t.setVal(2);
std::cout << t.getVal() << std::endl;
}
编译时需要将其他cpp文件也加进编译命令中:
g++ -Wall -std=c++14 main.cpp obj.cpp -o main.exe
G++ user manual: https://gcc.gnu.org/onlinedocs/
gcc帮助命令:gcc --help
参考文档:IDE 不是程序员的唯一选择
开启VS的cl编译器
https://blog.csdn.net/u011618339/article/details/79449552
Path:D:\Program Install\Work\Visual Studio 2015\VC\bin
Path:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
LINK : fatal error LNK1104: cannot open file ‘uuid.lib’
https://www.cnblogs.com/CHN-William/archive/2012/12/27/2835578.html
gmake:
https://blog.csdn.net/nicholas_liu2017/article/details/78323391
windows文件操作命令:
https://blog.csdn.net/qiang123___/article/details/78443932
Makefile:
all: main.exe
echo make all
main.exe: main.obj obj.obj
link /out:$@ $^
main.obj: main.cpp
cl /c $<
obj.obj: obj.cpp
cl /c $<
clean:
-del main.obj obj.obj main.exe
rebuild:
make clean main.exe
Makefile内常用指令:
make -n //查看makefile执行逻辑
clean目标
make clean:
-del main.exe main.obj obj.obj
rebuild目标
rebuild:
make clean main.exe