zoukankan      html  css  js  c++  java
  • 分别使用mingw和visual studio对cpp文件编译

    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

  • 相关阅读:
    PS和AI软件差别
    JS实现转动随机数抽奖的特效代码
    项目---考评系统排课算法分析
    UVA 193 Graph Coloring 图染色 DFS 数据
    中英文对照 —— 法律
    中英文对照 —— 法律
    中英文对照 —— 电影与话剧、歌剧
    中英文对照 —— 电影与话剧、歌剧
    matlab 正态分布相关 API
    matlab 正态分布相关 API
  • 原文地址:https://www.cnblogs.com/mada0/p/5140842.html
Copyright © 2011-2022 走看看