在Mac OS X上安装使用lazarus 1.6.4
一直觉得delphi的OO做得比C++还完善, 但如今日落西真是让人感到唏嘘, 这并不意味着delphi比C++差, 它的创始人被微软挖墙脚后创造了C#系列开发工具, 设计理念大部分与Delphi相似,但dotnet平台的执行效率非常不好.
如果在其他平台上也能用delphi开发呢?而且不用钱(Delphi正版极其昂贵)! 你会选择吗? 在OS X上开发应用除了用XCode, 还可以用lazarus, 一个跨平台的免费delphi !
由于国内没有相关的教程乃至官网wiki所详述的解决方法不通用(OS X版本不一样就有差别), 于是花了一天半的时间自己尝试安装并整理了这篇教程.
先描述一下版本:
OS: OS X EI Capitan (10.11.6)
XCode: 8
本文的大纲:
1/安装gdb, 并为其签名
2/安装command-line
3/安装lazarus
不知道10.X开始已经剔除了gdb改用lldb为默认的调试器, 所以需要手动安装,以下为转载内容:
在10.10下亲试的安装gdb和签名gdb以让它正常使用的步骤供参考。
我的步骤是:
1. 使用Homebrew安装gdb
2. 使用系统自带的codesign签名gdb
3. 验证gdb使用
使用Homebrew安装gdb
首先安装Homebrew,参考网址http://brew.sh/
操作步骤是在Terminal中执行
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”Homebrew安装完成后,在Terminal中执行 brew install gdb 安装gdb,安装后目录可以通过which gdb查看:/usr/local/bin/gdb
使用系统自带的codesign签名gdb
在10.10下,gdb不签名的话是无法访问其他程序的,此时如果gdb 你的程序时,会报如下错误:
*Unable to find Mach task port for process-id 83686: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))*
此时需要对gdb进行签名。首先:制作一个签名:
打开签名软件:Applications/Utilities/Keychain Access.app 在菜单栏选择:
Keychain Access > Certificate Assistant > Create Certificate…开始制作:
然后一路点继续 在下面的页面选择system
完成页面如
记得一步:让证书always trust,右键生成的证书gdb-cert,然后get info
ok,证书生成了。
然后:开始签名:
先把keychain工具关闭退出(需要这一步),重启 OS X签名的命令为(如果是替换已签好的签名,则将-s 替换成 -fs)
codesign -s gdb-cert /usr/local/bin/gdb
好了,签名成功,开始gdb了。
- 验证gdb使用
在生成aaa的程序的makefile中加入-g编译源文件,生成aaa
在生成的程序目录下执行:gdb ./aaa,然后就可以使用b p bt等gdb指令了
-----------------------------
安装 command-line:
打开terminal窗口,输入xcode-select --install, 完毕后打开xcode看看参数里面的locations, command-line是否有内容.
安装lazarus:
先下载lazarus & fpc到Downloads文件夹, https://sourceforge.net/projects/lazarus/files/Lazarus%20Mac%20OS%20X%20i386/Lazarus%201.6.4/
按指引先安装fpc, 再安装fpcsrc, 再安装lazarus, 这个版本的lazarus dmg映像文件好像是坏的,至少我的os x 10.11不识别, 怎么办??到官网论坛上问, 没人回答 (好冷的样子), 于是自己动手重新做了一个pkg文件(其实也就是zip文件):
1/ 用ultraiso将这个lazarus的dmg映像文件爆出来, 然后放在新建的lazarus.zip里面(注意目录结构) ,完毕后将其改名为lazarus.pkg, 用7zip打开是这样的
然后将其放于Download文件夹, 点击运行,一切正常!!
配置gdb
在当前用户的home目录下建立.gdbinit文件, 里面加入
set startup-with-shell off
lazarus第一次运行, 新建立一个空的project1, 编译, 然后在terminal里面测试一下gdb:
gdb project1
在里面输入break main
再输入run
如果没有gdb未签名相关的错误, 那证明gdb能正常使用了, 输入quit退出 .
--------------
但这时候lazarus还是不能正常调试的, gdb还是会不断有错误 (真是日了狗了), 需要 配置lazarus:
menu ->tools->options->debugger->Reset debugger after each run 上打上勾, 然后断点调试,逐步跟踪都能正常!
最后来一张完美的运行图:
<<<全文完>>>
在Mac OS X上安装使用lazarus 1.6.4的更多相关文章
- Mac OS X 上安装 ASP.NET 5
在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目 终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本 ...
- 在 Mac OS X 上安装 TensorFlow
在 Mac OS X 上安装 TensorFlow 这个文档说明了如何在 Mac OS X 上安装 TensorFlow. 注意:从 1.2 版本开始,在 Mac OS X 上 TensorFlow ...
- 在 Mac OS X 上安装 Docker(转)
http://www.oschina.net/translate/installing-docker-on-mac-os-x?print 在 Mac OS X 上安装 Docker 注意:Docker ...
- 如何在Mac OS X上安装 Ruby运行环境
对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 首先确定操 ...
- Mac OS X上安装 Ruby运行环境
环境 对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 ...
- 在Mac OS X上安装ASP.NET 5(译文)
ASP.NET 5 运行在包括OS X的可用于多个平台的.NET Execution Environment(DNX)上.本文介绍如何在OS X上通过HomeBrew安装DNX和ASP.NET 5. ...
- Mac OS X上安装配置apache服务器
说明:Mac在安装完成Mac系统的时候它已经自带了apache服务器,接下来就是配置和将它启动运行了.那么接下来要做的事情就是: 1.配置apache的配置文件 2.设置虚拟主机 启动并查看apach ...
- 在Mac OS X上安装Ionic
安装xcode(从app store下载,用于编译调试ios平台app) 安装node.js(npm) 安装ionic(sudo npm install -g ionic) 安装cordova(sud ...
- Sqlite在Windows、Linux 和 Mac OS X 上的安装过程
一:在 Windows 上安装 SQLite 1,下载 请访问SQLite下载页面http://www.sqlite.org/download.html,从Windows 区下载预编译的二进制文件.需 ...
随机推荐
- 解决vuex刷新页面数据丢失
1.前言 vue构建的项目中,vuex的状态存储是响应式的,当vue组件从store中读取状态的时候,若store中的状态发生变化,那么相应的组件也会得到高效刷新,问题来了,vuex存储的数据只是在页 ...
- php>$_SERVER服务的一些常用命令
$_SERVER['REMOTE_ADDR'] //当前用户 IP . $_SERVER['REMOTE_HOST'] //当前用户主机名 $_SERVER['REQUEST_URI'] //UR ...
- vue 连接后台
在 index.js 中可以配置后台的地址:代理的方式: 这个文件在 config 中 proxyTable: { // 连接后台 '/api':{ target:"http://new.w ...
- 越努力越幸运--3-日常bug修复
提供一个so给PYTHON调用,后端发现业务处理流程不是按照方法传入的参数来跑. 查看c的代码,看了客户端没看出什么问题,查看服务端为什么会出现这样的情况,有些字段明显不是入参带过来的,跟踪服务端解析 ...
- 2015 Multi-University Training Contest 1 y sequence
Y sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- 2015 Multi-University Training Contest 1 Assignment
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- Ordered Broadcast有序广播
sendBroadcast()发生无序广播 sendOrderedBroadcast()发送有序广播 activity_main.xml <LinearLayout xmlns:android= ...
- LightOJ - 1038 Race to 1 Again 递推+期望
题目大意:给出一个数,要求你按一定的规则将这个数变成1 规则例如以下,如果该数为D,要求你在[1,D]之间选出D的因子.用D除上这个因子,然后继续按该规则运算.直到该数变成1 问变成1的期望步数是多少 ...
- IOS音频架构之Audio Unit
在前面的章节部分我们已经对IOS音频结构有了一个清晰的认识,知道Audio Unit是位于整个音频结构的最底层,这一层非常多API已经開始和硬件打交道了.所以比較复杂,有了前面的基础再来看这个部分就比 ...
- Linux 文件系统初步
在Linux系统中,假设我们想要知道一个文件的详细信息,那么最简便的方法自然就是ls命令了.例如以下图所看到的:当在shell输入命令"ls -l old"时,在下方就会 ...