在windows下写makefile编译代码

From: http://blog.163.com/xjming487@126/blog/static/212951352007625114849843/

在windows下写makefile编译代码

1.下载minGW

    下载MinGW-5.0.0.exe,选择全安装。将minGW安装到F:\MinGW目录下。安装后将直接生成MSYS。运行MSYS即进入了一个linux模拟环境。如果是已经安装了Cygwin,在Cygwin下编译必须先链接make.exe,gcc.exe,g++.exe等。如下:
    cd /cygdrive/f/cygwin/bin
    ln -s  /cygdrive/f/MinGW/bin/mingw32-make.exe  make.exe
    ln -s  /cygdrive/f/MinGW/bin/mingw32-gcc.exe  gcc.exe
    ln -s  /cygdrive/f/MinGW/bin/mingw32-g++.exe  g++.exe
   
2.写代码
   
    先建立目录src,bin,obj。在src目录下建立源文件main.cpp,如下:
   
    #include <iostream>

  int main(int argc, char** argv)
  {
      std::cout << "Hello Jammy!" << std::endl;
      return 0;
  }
  
3.写makefile

    在src目录下建立一个makefile,如下:
   
    MYPATH=/f/cygwin/home/try
    CC=g++                         (g++是C++编译器,注意不能用C编译器gcc编译C++代码)
  EXEC=$(MYPATH)/bin/main
  OBJ=$(MYPATH)/obj/main.o
  SOURCE=$(MYPATH)/src/main.cpp
  
  
  all:$(EXEC)
  $(EXEC):$(OBJ)
          $(CC) -o $(EXEC) $(OBJ) -lm
  
  $(OBJ):$(SOURCE)
          $(CC) -o $(OBJ) -c $(SOURCE)
  
  .PHONY:clean
  clean:
          -rm $(EXEC).exe $(OBJ) 2> /dev/null
       
4.编译代码

    在src目录下编译代码,如下:
    $make        (清空编译为make clean all)
   
5.运行可执行程序

    进入bin目录下,运行可执行程序main。如下:
    $ ./main.exe
    $Hello Jammy!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Javascript中函数声明与函数表达式的不同

定义函数的方式有两种&#xff1a;一种是函数声明&#xff0c;另一种是函数表达式。 函数声明的语法如下&#xff1a; 1 function functionName(arg0,arg1,arg2){ 2 //函数体 3 } 函数表达式的语法如下&#xff1a; 1 var functionName function(arg0,arg1,arg2){ 2 //函数…

arm-none-eabi-gcc 嵌入式交叉编译器安装 极简教程

1、下载arm-none-eabi-gcc win10 官网下载&#xff1a;https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads我的FTP&#xff1a;arm-none-eabo-gcc 2、解压 3、添加环境变量 4、CMD运行 安装完毕&#xff0c…

[react] 路由切换时同一组件无法重新渲染的有什么方法可以解决?

[react] 路由切换时同一组件无法重新渲染的有什么方法可以解决&#xff1f; componentWillReceiveProps 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Oracle:使用ASM自动存储管理, 严重推荐

ASM 是Oracle 公司推出的专门用于oracle数据库系统的一种数据存储解决方案. 类似于OS的 软RAID,不过其在系统构架中的层次比较特殊,是直接服务于上层软件(asm)应用的,可以理解为 上下横跨 {硬件分区RAIDOS卷管理OS文件系统}的复合产物. 因其精简和优化了存储系统构架的实现,因而…

Ruby 的环境搭建及安装

上面粗略的介绍了下Ruby&#xff0c;本来不想安装这个的&#xff0c;原因是我是通过网站学习的&#xff0c;可在线编译。不过考虑到内容的全面性&#xff0c;还是尝试下。 参考了下别人的安装&#xff0c;try 一try. 首先因为我是windows 7 &#xff0c;所以就下在相关的版本。…

vscode openOCD 配置Jlink 下载和调试STM32 教程

1、修改openOCD 的配置文件jlink.cfg 由于手头上的jlink 是swd接口&#xff0c;需要将openOCD的jlink.cfg修改&#xff0c;指定接口类型为swd。这里直接复制一份&#xff0c;然后修改&#xff0c;jlink-swd.cfg内容如下&#xff1a; adapter driver jlink transport select s…

[react] 组件卸载前,加在DOM元素的监听事件和定时器要不要手动清除?为什么?

[react] 组件卸载前&#xff0c;加在DOM元素的监听事件和定时器要不要手动清除&#xff1f;为什么&#xff1f; 定时器要在 componentWillUnmount 手动清除&#xff0c;直接绑定在JSX里的事件监听器不用&#xff0c;使用ref绑定的要清除 因为如果不清除定时器&#xff0c;组件…

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html 最近有人问我关于这个的问题&#xff0c;就此写一篇blog Ansi字符串我们最熟悉&#xff0c;英文占一个字节&#xff0c;汉字2个字节&#xff0c;以一个\0结尾&#xff0c;常用于txt文本文件 Uni…

小女也爱c#(3)--俄罗斯方块练习数组

学完c了&#xff0c;总算是有点收获了&#xff0c;自己写了个俄罗斯方块练习数组&#xff0c;在vc6.0控制台环境下编译通过. makehead.h int Makepanel(char Ary_Panel[][10]);void gotoxy(int x, int y);void BrushsScreen(char ary[][20]);int initializationShape();void Sh…

放松时刻——C#分割字符串

让我们来练习一下字符串的分割~把话倒过来说&#xff1a; private void change_button_Click(object sender, EventArgs e) {var after_text before_TextBox.Text?.Select(x>x.ToString()).ToArray();string result "";for (int i after_text.Length - 1; i &…

cmd 调用JLink.exe 下载程序

1、新建download.jlink脚本 loadbin "D:\Data\ARM\vstestPro\vscode_cubemx_testLED.bin" 0x08000000 r g qc 脚本指明待下载的bin文件位置&#xff0c;指明下载的FLash起始地址。 2、调用jlink 下载bin程序 "C:\Program Files (x86)\SEGGER\JLink_V502c\JL…

黑马程序员---JVM内存组成

java把内存分两种&#xff1a;一种是栈内存&#xff0c;另一种是堆内存1。在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配&#xff1b;2。堆内存用来存放由 new创建的对象和数组在函数&#xff08;代码块&#xff09;中定义一个变量时&#xff0c; java就在…

使用WCF建立起Silverlight客户端与服务端的桥梁

最近正在开发一个项目&#xff0c;需要应用到Silverlight以及数据库。在正式开工之前需要掌握将数据从服务端送到客户端的技术&#xff0c;我们采用建立WCF服务的方法。 “做中学”是最好的学习方法&#xff0c;真正实践之后学习者将会有更多的自信和把握&#xff0c;这种感觉将…

[react] <div onClick={handlerClick}>单击</div>和<div onClick={handlerClick(1)}>单击</div>有什么区别?

[react] <div onClick{handlerClick}>单击</div>和<div onClick{handlerClick(1)}>单击</div>有什么区别&#xff1f; 绑定函数有三种方法 1、constructor绑定constructor(props) {super(props);this.handleClick this.handleClick.bind(this); //构…

我的AutoHotkey配置

关键配置&#xff1a; #IfWinActive ^L:: {WinGetClass, active_class, AIfInString, active_class, Afx:400000:8:Send !{Del}elseSend ^L } return #IfWinActive#IfWinActive F4:: {WinGetClass, sClass, Aif (sClass"Chrome_WidgetWin_1" or sClass"MozillaW…

[react] 怎么防止HTML被转义?

[react] 怎么防止HTML被转义&#xff1f; <h1 dangerouslySetInnerHTML{{__html: cc © 2015}}></h1> 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

如何用脚本可靠关闭一个linux服务或进程

一、脚本样例 以quectel的EC20模组关闭ppp拨号服务脚本为例&#xff0c;以下为脚本源码&#xff1a; #!/bin/sh timeout5 killall -15 pppd sleep 1 killall -0 pppd while [ $? -eq 0 ] dotimeoutexpr $timeout - 1if [ $timeout -eq 0 ]thenexit 1fisleep 1killall -0 ppp…

myeclipse8.5安装反编译工具

1.下载最新的jad.exe应用程序 2.下载net.sf.jadclipse_3.3.0.jar&#xff0c;在myeclipse8.5安装的文件夹中创建一个文件夹如jad&#xff0c;在jad文件夹中建立一个文件夹plugin&#xff0c;将下载的net.sf.jadclipse_3.3.0.jar文件放到新建的plugin文件中 3.在myeclipse8.5安…

C++中include 与 include 的区别

<>时先去系统目录中找头文件&#xff0c;如果没有再到当前目录下找。所以像标准的头文件 stdio.h, stdlib.h等都用<>;""则首先到当前目录下找&#xff0c;如果找不到再到系统目录下找。当include自定义的头文件时&#xff0c;优先使用“”。转载于:https…