MAC中使用Xcode类似Source Insight可以代码跳转并可以实现跨平台交叉编译Makefile工程

其实我也是一个新手,这是我在CSDN的第一篇文章,我也不知道能写出个什么样,也就是把自己在学习过程遇到的问题,

经过搜索,折腾的一点点经验,给大家分享下。。写得不好,希望不要介意。。。

使用MAC没多久,就发现有很多在Windows下用习惯了的软件,在MAC下找不到。在(Read The Fucking Source Code!)

源码的时候,发现不能像Source Insight哪样搜索,点击跳转函数,就觉得不方便,以前在Windows下有Visual Studio 2017,装个西红柿,添加任何源代码,就可以实现F12代码跳转,甚至可以添加生成文件,模拟make环境,可以实现跨平台编译,我就用过这种方式在生成命令中使用NDK编译Android JNI项目。

后来在网上搜索,虽然MAC也有Visual Studio,但是确实一个阉割版,不支持C/C++项目,也找不到类似Source Insight这样的神器,后面找到可以使用Visual sutido code 或者 Sublime Text 3 可以通过安装插件的方法实现代码的跳转,但是插件的安装方法网上找到许多,但是没有试验成功,但是在MAC上也有一个代码神器,就是Xcode,我几次尝试,

这篇文章可以做到以下功能,

1、Xcode 下添加三方,后者跨平台的C/C++工程,可以像Source Insight一样,代码跳转,这样阅读很省心。

2、在Xcode中实现跨平台C/C++工程编译,生成目标文件。

废话不多说,开始正题:

我的环境是:MAC OS 10.12.6  Xcode版本 :9.2

测试工程:lua-5.3.4

1、在网上下载lua-5.3.4,并解压,到自己设定的目录

2、新建工程,选择macOS 中的Command Line Tool 也就是命令行工具


语言选择C++,C语言的工程 也是可以的


创建工程的目录,选择在网上下载的工程解压的目录,也就是makefile所在的目录。

2.找到工程所在的目录。将工程文件.xcodeproj文件,我这里是lua-5.3.4.xcodeproj文件移动到与makefile同一目录

这样做是也是为了后面方便编译



3、将makefile文件夹下的由工程创建而产生的文件夹lua-5.3.4删除



选择在makefile所在的文件夹,双击lua-5.3.4.xcodeproj文件重新打开工程。

会发现,原来创建工程中的文件夹和mian.cpp文件已经变色失效,可以删除它。


4.添加工程源文件。我这里是lua-5.3.4工程的源文件,

右击工程>点击 Add Files to "lua-5.3.4"...这个选项。


在接下在了窗口中,找到你的源文件的目录。选择需要添加的工程源文件。我这里就全部选择上了。

不要急着点击添加,要在下方点击Options,在操作的选项卡中

一定要选择 Create groups 为工程创建组,否则无法创建索引,不能够实现代码跳转。


最后点击添加。

5、添加工程所需要的头文件搜索路径,依赖库路径,由于这个工程比较简单,我只添加了头文件搜索路径。



添加玩头文件搜索路径,在工程中,就可以实现定义跳转,就可以和Source Insight中一样实现快乐的阅读源码了,随意的代码跳转。

到此,做到和Source Insight中Ctrl点击跳转和Visual Studio 中F12一样的效果。

若要实现跨平台编译,还需要做一下操作。

6.新建一个编译生成目标:

选择交叉编译,跨平台(Cross-platform)->Othre->External Build System 外部编译系统目标。


设定目标名称,不能与工程名一样,因为在创建工程的时候自动创建了一个与工程名相同的目标名称,所以我们要区分这两个

目标名。

Build Tool 就是编译工具,就是你使用什么来编译工程,我这里使用make,这个make是填绝对路径,其实这个还可以推广到

lua脚本,python等。。。

那么久只需要设定python的路径,lua的路径久可以了,在后面可以添加参数的,久可以实现在Xcode中运行python脚本或lua脚本。


设置编译参数:按顺序添加编译参数,我这是编译mac平台下的lua

由于lua的makefile 决定,在make的时候要带上编译的平台,为了方便起见,我这里就设置为macosx,

其他平台的也是一样的,只要设置对,编译工具,

注意,若是编译linux下的lua的话,还需要条件Linux下的依赖库路径和依赖名称,在上面有提到


切换编译目标。工程默认的编译目标是原来创建工程时的目标,选择我们要切换成后面我们添加的外部生成目标。

操作如图。


到此,我们就可以点击三角符号进行编译了。


在code中的消息框中,可以看到编译的信息,最后编译成功。



总结:我测试过使用这种方法编译过mac下的lua,和使用NDK,使用ndk-build编译命令,编译了Android的JNI项目,顺利得到.so文件,复制到Android Studio 中可以正常运行。。

均可以实现代码条状,错误定位。。

好了文章到此结束,如果文章有什么问题,欢迎大家指出,我也是处于学习中的一名小员,有错误,有问题,希望大家指出,大家一起学习与进步,谢谢!

文章参考:

https://hiltmon.com/blog/2015/08/01/simple-c-plus-plus-from-makefiles-to-xcode-builds/

该文章有详细的跨平台,依赖库的添加。希望对大家的学习有用。。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值