美文网首页
2019-11-26 lua交叉编译 makefile有很多个别

2019-11-26 lua交叉编译 makefile有很多个别

作者: 送分童子笑嘻嘻 | 来源:发表于2019-11-28 08:48 被阅读0次

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/adlindary/article/details/80484986

在开发嵌入式项目时,由于嵌入式平台没有lua环境,只能自己移植。先到官网上下载最新的lua源码(点击打开链接)。

接下来按照下面步骤:

1、修改src/Makefile文件内容:

源码包中的原始的Makefile的部分需要更改的内容如下:

Your platform. See PLATS for possible values.

PLAT= none

CC= gcc -std=gnu99
CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 (SYSCFLAGS)(MYCFLAGS)
LDFLAGS= (SYSLDFLAGS)(MYLDFLAGS)
LIBS= -lm (SYSLIBS)(MYLIBS)

AR= ar rcu
RANLIB= ranlib
RM= rm -f

SYSCFLAGS=

SYSLDFLAGS=

更改后的内容如下:

Your platform. See PLATS for possible values.

PLAT= linux

CC=arm-oe-linux-gnueabi-gcc -std=gnu99 -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=(SDKTARGETSYSROOT) CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2(SYSCFLAGS) (MYCFLAGS) LDFLAGS=(SYSLDFLAGS) (MYLDFLAGS) LIBS= -lm(SYSLIBS) $(MYLIBS)

AR= arm-oe-linux-gnueabi-ar rcu
RANLIB= arm-oe-linux-gnueabi-ranlib
RM= rm -f

SYSCFLAGS= -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize -Wno-error=maybe-uninitialized -finline-functions -finline-limit=64 -include quectel-features-config.h -fstack-protector-strong -pie -fpie -Wa,--noexecstack

SYSLDFLAGS= -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now,-z,noexecstack

修改下面的内容;

linux:

(MAKE)(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"

为:

linux:
(MAKE)(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"

同时将luaconf.h文件的64行屏蔽。

2.修改顶层目录的Makefile文件

原始的文件部分内容如下:

Your platform. See PLATS for possible values.

PLAT= none

Where to install. The installation starts in the src and doc directories,

so take care if INSTALL_TOP is not an absolute path. See the local target.

You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with

LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.

INSTALL_TOP= /usr/local

修改后的内容如下:

Your platform. See PLATS for possible values.

PLAT= linux

Where to install. The installation starts in the src and doc directories,

so take care if INSTALL_TOP is not an absolute path. See the local target.

You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with

LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.

INSTALL_TOP= 自己想要安装的目录

保存,make,make install

上述只能产生lua的静态库。如果要产生动态库so,则按照下面步骤来:

1、在顶层的Makefile中的

TO_LIB= liblua.a

修改为

TO_LIB= liblua.a liblua.so

2、在/src/Makefile中的如下两行之间:

ALL_A= $(LUA_A)

Targets start here.

添加如下选项

LUA_SO=liblua.so
ALL_T= (LUA_A)(LUA_T) (LUAC_T)(LUA_SO)
(LUA_SO):(CORE_O) (LIB_O)(CC) -o @ -shared -fPIC? -ldl -lm
————————————————
版权声明:本文为CSDN博主「adlindary」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/adlindary/article/details/80484986

相关文章

  • 2019-11-26 lua交叉编译 makefile有很多个别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:...

  • 交叉编译Makefile

    为交叉编译环境编写Makefile时,注意CROSS_COMPILE变量要先export,然后才能在Makefil...

  • # 一个Makefile的进化(三)

    一个Makefile的进化(三) makefile配置分离与交叉编译设置目标:1.分离makefile的配置2.增...

  • 解决busybox编译错误

    交叉编译busybox时,make menuconfig 报错,错误如下: 错误原因是:Makefile中混合的和...

  • 嵌入式系统开发环境概述

    嵌入式系统开发环境主要包括: 集成开发工具 交叉编译器 批处理文件 makefile Link Script 调试...

  • [C] Makefile

    Makefile Blog [Makefile的简便写法] [Makefile]菜鸟教程 [gcc编译声明问题] ...

  • lua 和 cpp 互调

    本文编译 lua 版本为 5.3 编译 lua5.3 例子中涉及为 lua 编写 so,(lua require ...

  • lua静态检查工具luacheck

    关于lua的静态检查工具很多,这里着重介绍两种方法:1、luac.exe也就是lua的编译器,安装完lua的编译器...

  • 编译支持 lua 和 ruby 的 vim

    下载 Vim,Lua,LuaJIT 解压 编译安装 Lua 编译安装 LuaJIT 查看 Lua 与 LuaJIT...

  • golang与C/C++的简单比较

    优点: 良好的跨平台,可交叉编译 简单的工程管理,通过文件夹系统管理,没有类似Makefile的工程管理文件 静态...

网友评论

      本文标题:2019-11-26 lua交叉编译 makefile有很多个别

      本文链接:https://www.haomeiwen.com/subject/blnywctx.html