一直觉得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. tar 命令man说明

    TAR(1) User Commands TAR(1) NAME tar - manual page for tar 1.26 SYNOPSIS tar [OPTION...] [FILE]... D ...

  2. python_模块学习

    '''import sysprint(sys.path) #打印环境变量 #运行结果为:['D:\\PyCharm Community Edition 2018.2.2\\NewYear\\untit ...

  3. Web长连接推送

    http://www.workerman.net/web-sender http://wahahachuang5.iteye.com/blog/2311313

  4. hdu5137 How Many Maos Does the Guanxi Worth(单源最短路径)

    题目链接:pid=5137">点击打开链接 题目描写叙述:如今有一张关系网.网中有n个结点标号为1-n.有m个关系,每一个关系之间有一个权值.问从2-n-1中随意去掉一个结点之后,从1 ...

  5. Java设置Client Socket链接Server超时时间

    Java设置Client Socket链接Server超时时间 学习了:http://blog.csdn.net/tterminator/article/details/52494141 http:/ ...

  6. Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix

    MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.Vie ...

  7. Java IO(二) 之 InputStream

    源代码均以JDK1.8作为參考 前言: InputStream实现了两个接口Closeable和AutoCloseable: Closeable:JDK1.5中引入,Closeable接口中仅仅有一个 ...

  8. linux 下同步异步,堵塞非堵塞的一些想法

    补充: 发现一个更好的解释样例:同步是一件事我们从头到尾尾随着完毕.异步是别人完毕我们仅仅看结果. 堵塞是完毕一件事的过程中可能会遇到一些情况让我们等待(挂起).非堵塞就是发生这些情况时我们跨过. 比 ...

  9. 《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)

    第2章 Linxu怎样学习         1. Linux当前的应用角色 当前的Linux常见的应用可略分为企业应用和个人应用双方面. 首先谈了企业环境的利用. 1)网络server. 2)关键任务 ...

  10. OpenGL的前世和今生

    这并不是一个恰当的题目,因为我主要想说的是OpenGL的今生,基于OpenGL3.x一种更现代化的方式.但是把前世和今生放在一起在语言上更加连贯,而且适当的了解过去,会帮助理解现在的OpenGL,以一 ...