一直觉得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使用

  1. 使用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

  2. 使用系统自带的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了。

  3. 验证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 上打上勾, 然后断点调试,逐步跟踪都能正常!

最后来一张完美的运行图:

<<<全文完>>>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocklee/article/details/70350460
 

在Mac OS X上安装使用lazarus 1.6.4的更多相关文章

  1. Mac OS X 上安装 ASP.NET 5

    在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目 终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本 ...

  2. 在 Mac OS X 上安装 TensorFlow

    在 Mac OS X 上安装 TensorFlow 这个文档说明了如何在 Mac OS X 上安装 TensorFlow. 注意:从 1.2 版本开始,在 Mac OS X 上 TensorFlow ...

  3. 在 Mac OS X 上安装 Docker(转)

    http://www.oschina.net/translate/installing-docker-on-mac-os-x?print 在 Mac OS X 上安装 Docker 注意:Docker ...

  4. 如何在Mac OS X上安装 Ruby运行环境

    对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 首先确定操 ...

  5. Mac OS X上安装 Ruby运行环境

    环境   对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 ...

  6. 在Mac OS X上安装ASP.NET 5(译文)

    ASP.NET 5 运行在包括OS X的可用于多个平台的.NET Execution Environment(DNX)上.本文介绍如何在OS X上通过HomeBrew安装DNX和ASP.NET 5. ...

  7. Mac OS X上安装配置apache服务器

    说明:Mac在安装完成Mac系统的时候它已经自带了apache服务器,接下来就是配置和将它启动运行了.那么接下来要做的事情就是: 1.配置apache的配置文件 2.设置虚拟主机 启动并查看apach ...

  8. 在Mac OS X上安装Ionic

    安装xcode(从app store下载,用于编译调试ios平台app) 安装node.js(npm) 安装ionic(sudo npm install -g ionic) 安装cordova(sud ...

  9. Sqlite在Windows、Linux 和 Mac OS X 上的安装过程

    一:在 Windows 上安装 SQLite 1,下载 请访问SQLite下载页面http://www.sqlite.org/download.html,从Windows 区下载预编译的二进制文件.需 ...

随机推荐

  1. django 分组统计遇见的问题

    在使用 django 的时候发现了一个坑 例如: In [54]: print(F.objects.all().values("age").annotate(fff=Count(& ...

  2. 常用的字符串方法 String ;

      字符串: 1,str.charAt(num);//根据下标查找字符串中对应的字符,返回对应下标的字符; 2,str.charCodeAt(num);//字符串中下标对应的那位字符的 Unicode ...

  3. [原创]Linux 下 redis 链接一次

    刚接触 Linux ,在 Linux 下安装 redis 链接redis 出现了以下问题  Could not connect to Redis at 127.0.0.1:6379: Connecti ...

  4. java 对象 拆箱装箱 编译和反编译的验证

    创建对象 package 创建对象的个数; public class main { public static void main(String[] agrs){ Check c1=new Check ...

  5. C#调用带结构体指针的C Dll的方法

    在C#中调用C(C++)类的DLL的时候,有时候C的接口函数包含很多参数,而且有的时候这些参数有可能是个结构体,而且有可能是结构体指针,那么在C#到底该如何安全的调用这样的DLL接口函数呢?本文将详细 ...

  6. 【BZOJ 1083】 [SCOI2005]繁忙的都市

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 很明显的最小生成树了. 输出最后选的那条边就好了. [代码] #include <bits/stdc++.h> usin ...

  7. mac和iphone处理视频

    今天在微信上面发现有视频打不开,也无法下载到相册 而到电脑上可以打开 搜了一下,发现格式不对,mp4有很多格式,有的是苹果支持不了的. 要下载一个转换器,我下载了“超级转霸”,然后把视频转成了ipho ...

  8. Fragmen直接来回切换deno

    思路: 第一步.建立一个activity.用来管理fragment. 第二步'获取fragmentManger 和fragmentTraction. private FragmentManager f ...

  9. Linux下查询CPU 缓存的工具

    在Linux下能够使用例如以下工具查询CPU缓存: 方式1: $ lscpu L1d cache: 32K <span style="white-space:pre"> ...

  10. 数据可视化之Processing【1】

    说Processing之前得先说一下数据可视化. 数据可视化--顾名思义.是关于数据之视觉表现形式的研究,将数据用其它方式表现出来,使之更直观, 更清晰,更easy分析和处理.常见的表达方式如word ...