Mac下交叉编译linux golang程序

Mac下交叉编译linux golang程序,第1张

一、背景介绍

    闲来无事,申请了台aws服务器在家搞点小东东,用golang做了个小东东,想放上去绝圆。自己的电脑是mac电脑,起初忘记了交叉编译的事,直接编译了下直接扔到aws,运行的时候出现了不可以运行的二进制格式提示。

二、交叉编译的过程

     敏宏肆1、随手百度了下,很多文章都写的“CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build”(不知你搜索到的是不是这个结果),看到这也挺简单,分别是禁用cgo,指定目标系统,指定目标CPU体系架构,然后编译。

  按照百度出来的建议,尝试在电脑上编译了下,提示如下错误,如果没有出现错误的可以不用往下看了哈。

2、如第一步所述,是将CGO关闭的状态,如果程序用到了CGO,是不是就需要将CGO放开?将CGO放开又会是什么现象?具体如下:

从上述的错误信息可以看出来,环境变量是生效的,确实是linux体系架构了。

3、继续百度桥轿,https://blog.csdn.net/zhaoli081223/article/details/121255583 终于发现这篇文章非常不错,在这里和大家分享下,按照文章的 *** 作就可以解决问题了,而且里面有非常详细的讲解。

一、Mac OS X中make和gcc命令的安装

在编译Lua前需要做的准备工作。

我将lua-5.2.2.tar.gz下载到苹果电脑中,解压后进行编译时,发现我的Mac OS X 没有mak命令,也没有gcc命令。

检测苹果电脑的Mac OS X中是否有make命令的方法,可在控制台键入命令:which make

如果有该命令,则会返回提示:/usr/bin/make

所以我需要在Mac OS X中安装mak命令和gcc使命令。安装工具包需要从苹果的开发网站下载。

下载方法:

打开Xcode,菜单Xcode -->Open Developer Tool -->More Developer Tools

这时Safari浏览器被运行,并d出注册对话框,要求输入Apple ID和密码,填写完注册信息然后进入Apple Developer的下载站点,搜索“Unix”,结果会列出命令工具包的下载列表:

Command Line Tools (OS X Mountain Lion)for Xcode - April 2013 (这个版本需要Xcode 4.6.2 和 Mac OS X 10.8以上版本)

Command Line Tools (OS X Lion)for Xcode - April 2013 (这个版本需要Xcode 4.6.2 和 Mac OS X 10.7.4以上版本)

……

下面还有其它版本,跟据你使用的Mac OS X的版来下载。另外说一下:

Mac OS X 10.4.x,代号为:Lion

Mac OS X 10.8.x,代号为:Mountain Lion

我的Mac OS X是Mountain Lion,所以下载的是Command Line Tools (OS X Mountain Lion)for Xcode - April 2013 版本,文件名为:

xcode462_cltools_10_86938259a.dmg

下载完后双击该文件。过一会儿后,会d出安装包的窗口,对双击安装包轮迅。按提示完成安装。这时make和gcc便有了。

可使用which命令进行检查。

二、编译Lua软件

编译和安装穗桐滑方法的详细说明在readme文件中:lua-5.2.2/doc/readme.html

在编译前最好进行编译测试,在lua-5.2.2目录下,使用命令如下:make test

我的编译和安装方法是:

sudo make macosx install (sudo在Mac OS X中表示使用超级用户权限)

注意:

Lua的编译和安装说明文档(readme.html)中指出,编译Lua时,需要选择要运行的 *** 作系统,编译并安装的格式如下:

make xxx install (如果不是超级用户登录,则需要前面加sudo命令)

其中xxx表示目标 *** 作系统的标记,目标 *** 作系统的标记列表如下:

aixansibsdfreebsdgenericlinuxmacosxmingwposixsolaris

Lua 将默认安装到 /usr/local/,安装完成后,在该目录下会生成一些重要文件。

/usr/local/ bin: (可运行程序)

lualuac (lua是Lua语言的解释器,luacLua语言的编译器)

/usr/local/ include: (头文件)

lua.hluaconf.hlualib.hlauxlib.hlua.hpp

/usr/local/lib: (库文件)

liblua.a

/usr/local/ man/man1: (命令手册)

lua.1luac.1

Lua 解释器完整的路径是 /usr/local/bin/lua,在终端中运行 lua 即可调用解释器。

三、Lua语言解释器的测试

在控制台上输猜腊入lua命令:lua

Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio

>print (“Hello World!”) (进入交互命令状态,在提示符“>”下输入测试代码)

Hello World! (返回的结果)

键入 Control+D 退出交互命令

如果想运行一个lua脚本文件,可以使用下面命:lua文件名

如:lua hello.lua

hello.lua文件的代码:

io.write(“Hello world, from ”,_VERSION,“”!\n)

结果:Hello world, from Lua 5.2!

注释:

Lua 是一个小巧的脚本语言。 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8265759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存