分别使用mingw和visual studio对cpp文件编译
2016-01-18 23:39
495 查看
c++编译
标签(空格分隔): 未分类总结一下如何使用visual studio 和mingw编译c++文件
单文件编译:
/* a.cpp */ #include <iostream> int main(){ std::cout<<"hello pepelu"<<std::endl; return 0; }
使用mingw编译:
一步到位:
g++ a.cpp
生成名为a的可执行文件。
指定生成文件名的编译方式:
g++ a.cpp -o fileName
生成名为fileName的可执行文件
使用visual studio编译:
cl /EHsc a.cpp
生成a.exe,a.obj其中a.exe为可执行文件
包含头文件
/* a.cpp */ #include <iostream> #include "a.h" void a::foo() { std::cout<<"hello pepelu"<<std::endl; } int main() { a _a; _a.foo(); return 0; }
头文件:
/* a.h */ #ifndef A_H #define A_H class a { public: a(){} ~a(){} void foo(); }; #endif
使用mingw编译:
g++ a.cpp
或者:
g++ a.cpp -o fileName
使用visual studio编译:
cl /EHsc a.cpp
自动链接头文件
也可以为头文件指定文件目录:
cl /EHsc /I${filePath} a.cpp
filePath为头文件所在目录。
多文件编译:
/* c.h */ #ifndef C_H #define C_H #include <iostream> #include <string> using namespace std; extern string s1; extern string s2; extern void fun1(); extern void fun2(); #endif
/* b.cpp */ #include "c.h" string s1=""; string s2=""; void fun1() { s1="Now in fun1..."; cout<<s1<<endl; } void fun2() { s2="Now in fun2..."; cout<<s2<<endl; }
/* a.cpp */ //main #include "c.h" int main() { cout<<"s1 = "<<s1<<endl; cout<<"s2 = "<<s2<<endl; fun1(); fun2(); cout<<"s1 = "<<s1<<endl; cout<<"s2 = "<<s2<<endl; return 0; }
使用mingw编译:
g++ a.cpp b.cpp -o fileName
一步即可生成以fileName为文件名的可执行文件。
分布编译:
g++ -c a.cpp g++ -c b.cpp g++ a.o b.o -o fileName
依次执行即可得到以fileName命名的可执行文件。
使用visual studio编译
cl /EHsc a.cpp b.cpp
自动链接。
参考:
http://wiki.ubuntu.org.cn/index.php?title=Compiling_Cpp&variant=zh-hans
https://msdn.microsoft.com/zh-cn/library/6t3612sk.aspx
相关文章推荐
- C++ Builder 静态编译设置
- c++的坑--多线程退出,单例退出
- C++制作俄罗斯方块 日志
- C++学习 【1】 C++的初步认识
- C语言之反序数组和求最大值和最小值
- C++库常用函数一览(<string><cctype><algorithm><cmath><cstdlib><iomanip><numeric>)
- C++重载和多态,
- 【c/c++】C++文件读写详解(ofstream,ifstream,fstream)
- 【C++】 引入一维数组的元素
- C++11学习笔记
- C语言格式化输入/输出
- C++语言零基础入门教程:2.2 C/C++头文件大揭秘,""和<>有什么区别
- 改善C++ 程序的150个建议学习之建议20:使用memcpy()系列函数时要足够小心
- C语言 - #define宏的定义与使用方法
- C++开发人脸性别识别教程(13)——针对单张图片的性别识别
- C语言 - typedef关键字
- 一起talk C栗子吧(第一百零六回:C语言实例--生产者与消费者问题二)
- C++中的const_interator
- C++11新特性应用--介绍几个新增的便利算法(更改容器中元素顺序的算法)
- C++11新特性应用--介绍几个新增的便利算法(更改容器中元素顺序的算法)