在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 区下载预编译的二进制文件.需 ...
随机推荐
- 多任务-进程之进程池Pool
1.什么是池? 首先从字面上看,池代表着一个容器,用来承载着某些内容的容器,了解到这里,就对进程池有了一个初步的轮廓. 2.什么是进程池Pool? (1)利用现实中的事物来理解: 对于小白初学者,接触 ...
- [agc015c]nuske vs phantom thnook
题意: 有一个n*m的网格图,每个格子是蓝色或白色.四相邻的两个格子连一条边,保证蓝格子构成一个森林. 有q组询问,每次询问给出一个矩形,问矩形内蓝格子组成的联通块个数. $1\leq n,m\leq ...
- orale 中创建定时任务
--添加变量 variable job1 number; --创建JOB begin dbms_job.submit(:job1,'testjob;',sysdate, 'TRUNC(sysdat ...
- android:为TextView加入样式——下划线,颜色,设置链接样式及前背景色
实现下划线及颜色设置: public class AtActivity extends Activity { LinearLayout ll; /** Called when the acti ...
- so near yet so far
Dear little yang So beautiful boy as you, the most beautiful boy is you who i ever saw, like a sun , ...
- sass10 demo1
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- bzoj1831: [AHOI2008]逆序对(DP+双精bzoj1786)
1831: [AHOI2008]逆序对 Description 小可可和小卡卡想到Y岛上旅游,但是他们不知道Y岛有多远.好在,他们找到一本古老的书,上面是这样说的: 下面是N个正整数,每个都在1~K之 ...
- iOS 报错:(子线程中更新UI)This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.
今天在写程序的时候,使用Xcode 运行工程时报出下面的错误错信息,我还以为是什么呢,好久没遇到过这样的错误了. **ProjectName[1512:778965] This application ...
- php中命名空间和use
php中命名空间和use 总结 php中的namespace就有点像java中package包的概念 php中的use的概念就是用别人的命名空间中的类 php中的include enquire是引入文 ...
- matplotlib 可视化 —— 绘制常见图形
0. 饼状图 plt.pie():Python数据可视化:饼状图 1. 三角形 描点连线,起点和终点相同 triangle1 = ((0, sqrt(3)/2), (1, 3*sqrt(3)/2), ...