虽说VC是Windows下C++开发的首选工具,但有时候写一些小程序,我还是更倾向于使用一些轻量级的开发工具。比如最近研究Lua嵌入 C++,有时候只是写一些很小的程序,这时候Visual Studio就显得太过臃肿了,于是我选择了EditPlus+MinGW的方法。搞了两个晚上,终于搭建好了环境,在这里总结一下,以备将来查看。
    MinGW的安装比较简单了。我偷懒直接下了个自动安装程序,他会自己去下载最新的包,并解压到正确的位置。为了更方便的使用,还需要配置环境变 量,google了一下,还挺多。要是每到一台机器都要这样配置的话,那不是很累。本着计算机能完成的工作绝不自己做的原则,我决定写个js脚本配置环境 变量。最开始采用了修改注册表的方法,但是后来发现这种方式修改环境变量是不能立即生效的。又google了一下,改用WScript的shell对象来 直接修改环境变量。

要配置的环境变量:

MINGW_PATH = “MinGW的主目录”

C_INCLUDE_PATH = "%MINGW_PATH%//include;%MINGW_PATH%//lib//gcc//mingw32//3.4.5//include ";

CPLUS_INCLUDE_PATH = "%MINGW_PATH%//include//c++//3.4.5;%MINGW_PATH%//include//c++//3.4.5//mingw32;%MINGW_PATH%

//include//c++//3.4.5//backward;%C_INCLUDE_PATH% ";

LIBRARY_PATH = "%MINGW_PATH%//lib;%MINGW_PATH%//lib//gcc//mingw32//3.4.5";

PATH = "%MINGW_PATH%//bin;%MINGW_PATH%//libexec//gcc//mingw32//3.4.5;";

写成js脚本,把这个脚本放到MinGW的主目录里,双击运行就可以了。

function GetCurrPath ()
{
    fso = new ActiveXObject ("Scripting.FileSystemObject" );
    currFolder = fso . GetFolder ("." );
    return currFolder . path
}

//取得当前路径
MINGW_PATH = GetCurrPath ();

C_INCLUDE_PATH = "%MINGW_PATH%//include;%MINGW_PATH%//lib//gcc//mingw32//3.4.5//include " ;

CPLUS_INCLUDE_PATH = "%MINGW_PATH%//include//c++//3.4.5;%MINGW_PATH%//include//c++//3.4.5//mingw32;%MINGW_PATH%//include/

/c++//3.4.5//backward;%C_INCLUDE_PATH% " ;

LIBRARY_PATH = "%MINGW_PATH%//lib;%MINGW_PATH%//lib//gcc//mingw32//3.4.5" ;

PATH = "%MINGW_PATH%//bin;%MINGW_PATH%//libexec//gcc//mingw32//3.4.5;" ;

var WshShell = WScript . CreateObject ("WScript.Shell" );
var WshSysEnv =   WshShell . Environment ("SYSTEM" );
WshSysEnv ("MINGW_PATH" ) = MINGW_PATH ;
WshSysEnv ("C_INCLUDE_PATH" ) = C_INCLUDE_PATH ;
WshSysEnv ("CPLUS_INCLUDE_PATH" ) = CPLUS_INCLUDE_PATH ;
WshSysEnv ("LIBRARY_PATH" ) = LIBRARY_PATH ;
PATH = PATH + WshSysEnv ("PATH" );
WshSysEnv ("PATH" ) = PATH ;
WScript . Echo ("MinGW环境变量设置完成!" );

接下来是Lua环境,下载Lua的bin和lib以后,做成下面的目录结构:

Lua

├─bin
│      bin2c.exe
│      lua.exe
│      lua5.1.dll
│      lua51.dll
│      luac.exe
│      wlua.exe

├─include
│      lauxlib.h
│      lua.h
│      lua.hpp
│      luaconf.h
│      lualib.h

└─lib
        lua5.1.lib
        lua51.lib

然后仍然是js脚本配置环境变量:

function GetCurrPath ()
{
    fso = new ActiveXObject ("Scripting.FileSystemObject" );
    currFolder = fso . GetFolder ("." );
    return currFolder . path
}

//取得当前路径
LUA_HOME = GetCurrPath ();

LUA_BIN = "%LUA_HOME%//bin;" ;

LUA_INCLUDE = "%LUA_HOME%//include;" ;

LUA_LIB = "%LUA_HOME%//lib;" ;

var WshShell = WScript . CreateObject ("WScript.Shell" );
var WshSysEnv =   WshShell . Environment ("SYSTEM" );

WshSysEnv ("LUA_HOME" ) = LUA_HOME ;
//bin加入path
WshSysEnv ("PATH" ) = LUA_BIN + WshSysEnv ("PATH" );
//include加入MinGW
WshSysEnv ("C_INCLUDE_PATH" ) = LUA_INCLUDE + WshSysEnv ("C_INCLUDE_PATH" );
//lib加入MinGW
WshSysEnv ("LIBRARY_PATH" ) = LUA_LIB + WshSysEnv ("LIBRARY_PATH" );
WScript . Echo ("LUA环境变量设置完成!" );

有时候设置好了却不生效,重启一下就好了。先写个Hello World测试一下。

#include <lua.hpp>
#include <iostream>
using namespace std ;

int main ()
{
    lua_State * L = lua_open ();
    lua_cpcall (L , luaopen_base , 0 );

if (luaL_loadfile (L , "test.lua" ) || lua_pcall (L , 0 , 0 , 0 ))
        cout << lua_tostring (L , - 1 )<< endl ;

lua_close (L );

system ("pause" );
    return 0 ;
}

test.lua:

print (" Hello World!" )

makefile:

all : main.exe
#all:rebuild
    main.exe

main.exe : main.o
    g++ -o $@ $^ -llua5.1

main.o : main.cpp
    g++ -c main.cpp

clear :
    -del *.exe *.o

rebuild : clear main.exe

直接make,编译、连接、运行一次搞定。

g++ -c main.cpp
g++ -o main.exe main.o -llua5.1
main.exe
Hello World!
请按任意键继续. . .

转载于:https://blog.51cto.com/general/900253

MinGW+Lua环境配置小结相关推荐

  1. Lua环境配置和工具介绍

    官网地址:http://www.lua.org/ Lua环境配置方式: (一)环境变量配置方式: (1)官网下载LuaDist,并解压缩到 c:\ (目录可自定义) 例如:C:\ environmen ...

  2. OpenCV/CUDA/Qt 环境配置小结

    OpenCV Qt CUDA windows环境下 配置 反复装过几次,每次都网搜攻略:自个做个记录 方便以后使用. 碰到OpenCV各种奇怪的错误 先看看 图片imread() 有没有读空 再找其他 ...

  3. Assimp + VSCODE + OpenGL + MinGW 环境配置全攻略

    最近在 LearnOpenGL CN 上学习时遇到了一个究极大困难. LearnOpenGL CN Assimphttps://learnopengl-cn.github.io/03%20Model% ...

  4. MinGW下载和安装详细步骤 及 环境配置

    一.下载 点击 这里 进入官网下载最新版本的MinGW.(这里下载的是Windows32位,但MinGW的所有软件都将在64位Windows平台上执行,所以32位和64位都是一样的.) 二.安装 1. ...

  5. lex编译dos命令_Lex与Yacc学习(一)之环境配置篇

    Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这 ...

  6. VsCode c++环境配置(最新版)

    文章目录 VsCode c++环境配置(最新版) 一. 前言 二. 相应软件安装 1. 安装 MinGW-w64 2. 安装VsCode 三. vscode环境配置 1. 创建工作区 2. 配置文件 ...

  7. Lua环境搭建 Win10

    Lua环境搭建 Win10 一.安装Lua 基于Mingw构建,需要安装好Mingw环境. 点此获取Lua Source Code.选择版本为 5.35, 解压缩,CMD/PS输入make mingw ...

  8. 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)

    跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...

  9. 一文解决VS Code安装、C++环境配置、OpenCV配置

    前言    本文包括VScode安装.C++环境配置以及OpenCV配置全过程.VS Studio配置OpenCV比较简单,可以直接使用OpenCV官网已有的用VS Studio编译器编译好的Open ...

最新文章

  1. log4cplus导致主进程不能退出问题解决
  2. 如何摆脱JavaFX中的重点突出显示
  3. JavaScript 内存机制(前端同学进阶必备)
  4. 04737 c++ 自学考试2019版 第二章课后程序设计题 2
  5. php会不会被人工智能取代,人工智能真的会取代前端开发吗?
  6. Vue.js 学习笔记 二,一些输出指令
  7. Leetcode 538.二叉树转换为累加树
  8. Atitit Loading 动画效果
  9. wend计算机语言,计算机脚本语言开机显示当前页面发生
  10. 南京邮电大学电子电路课程设计可编程音乐自动演奏电路
  11. mysql自学完整_MySQL自学篇(三)
  12. 整理了一份嵌入式软件工具清单!
  13. 2021年烷基化工艺考试内容及烷基化工艺考试资料
  14. 录音转文字的app哪个好用?来试试这几个宝藏软件
  15. vue 页面跳转路由 不显示内容Component inside <Transition> renders non-element root node that cannot be animated.
  16. vue 获取input光标位置,并实现插入模板语法。
  17. 国内计算机类三大中文学报投稿体会(转载)
  18. 2017lol服务器维修时间,lol年3月16日要维护多长时间2017_lol3.16维护时间公告_好特教程...
  19. win git 报错 no matching host key type found. Their offer: ssh-rsa
  20. 【调剂】985东南大学2020年苏州联合研究生院相关专业调剂信息

热门文章

  1. shell脚本中echo显示内容带颜色
  2. 一个简单的路由映射,让你的树莓派通过SSH外网可访问
  3. Verilog学习----条件语句、循环语句、块语句与生成语句
  4. android input设备event处理以及hotplug检测
  5. [DefaultProperty(Text),ToolboxData()]
  6. 基片集成波导原理_ETH研究人员开发微型红外光谱仪 可以集成到芯片当中
  7. python json模块的内部实现_python – 如何使用JSON模块进行漂亮打印时实现自定义缩进?...
  8. Linux Kernel TCP/IP Stack — L3 Layer
  9. Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)
  10. C 语言编程 — 逻辑控制语句