[C/C++] 在Windows x64上通过MSYS2生成Makefile文件

该博客详细介绍了如何在Windows环境下使用MinGW64和Automake工具链来构建C++程序。步骤包括安装Automake、创建源文件、配置configure.ac、运行aclocal、autoconf、autoheader、automake等命令,最终生成并执行main.exe,显示'Hello World!'。
摘要由CSDN通过智能技术生成

安装automake

  • 打开mingw64.exe,执行pacman -S automake、pacman -S autoconf和pacman -S perl(只需安装没有安装过的包)

建立.cpp和.h文件

  • 在 D:\test\ 路径下新建main.cpp并输入以下内容:
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

使用automake

  • 打开mingw64.exe,执行 cd /d/test/ 
  • 执行 autoscan 扫描目录下文件并生成 configure.scan文件
  • 重命名 configure.scan 文件为 configure.ac 并编辑其内容为:
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.71])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE(main,1.0)  # 在这里添加这一行, “main”为可执行文件名称,1.0为版本号
AC_CONFIG_SRCDIR([main.cpp])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CXX

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.
AC_CONFIG_FILES([Makefile])  # 在这里添加这一行,生成Makefile文件
AC_OUTPUT
  • 执行 aclocal 扫描 configure.ac 文件生成 aclocal.m4文件
  • 执行 autoconf 将 configure.ac 文件中的宏展开,生成 configure 脚本
  • 执行 autoheader 命令生成 config.h.in 文件
  • 创建 Makefile.am文件并添加如下内容。其中 main为可执行文件名称,main_SOURCES 中的 main 
AUTOMARK_OPTIONS = foreign  
bin_PROGRAMS = main  # 可执行文件名称 
main_SOURCES = main.cpp  # main_SOURCES中的main为可执行文件名称。 main.cpp为编译可执行文件所需要的依赖项
  • 依次执行 touch NEWStouch READMEtouch AUTHORStouch ChangeLog
  • 执行 automake --add-missing
  • 执行 ./configure 生成 Makefile文件
  • 执行 make 生成 main.exe 文件
  • 执行 ./main,屏幕输出 “Hello world!”

附录

  • main.exe 在 D:/test/ 路径下

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值