데이터 베이스 MySQL 튜토리얼 mac下用xcode和eclipse编译调试mysql源码_MySQL

mac下用xcode和eclipse编译调试mysql源码_MySQL

Jun 01, 2016 pm 01:14 PM
mysql ubuntu 프로그램

最近开始找回mysq源码了,好久没折腾这些了,准备在mac上用xcode和eclipse搭建好编译调试环境。mac上编译调试环境也主要是安装gcc,g++,cmake和gdb工具,在安装好xcode之后,也就可以编译c/c++程序了。

mac下eclipse+cdt和ubuntu下eclipse+cdt搭建c++编译调试环境基本相同,就gdb的配置一点不一样。xcode相比使用eclipse,其主要的不同是cmake的时候的参数不一样,先使用cmake把mysql源码生成xcode代码工程文件(.xcodeproj)。

关于gdb,就一直比较蛋疼了。osx10.9没有安装gdb工具,我使用brew安装的gdb是7.7版本的,用eclipse测试后的时候无法使用,eclipse一直处于“Launching : Configuring GDB ”状态。后来同事说使用gdb v6.63可以调试,替换之后果然可以,神马情况。

使用xcode调试mysql源码主要几个步骤:

1)使用cmake生成xcode的工程文件

cmake之后将会在源代码根目录生成一个.xcodeproj的xocde工程文件,直接用xcode打开。

cmake . -G "Xcode" -DWITH_DEBUG=1 -DCMAKE_INSTALL_PREFIX=/Users/sylar/Downloads/mysql-5.6.17/work
로그인 후 복사

2)利用xcode进行编译和安装mysqld

就是通过xcode完成make和make install的过程,并生成的目标文件拷贝到上面cmake参数“-DCMAKE_INSTALL_PREFIX”指定的目录中。

3)初始化mysql

这个需要在命令行完成,使用mysql_install_db并指定basedir和datadir。这个参数和xcode设置运行参数要保持一致

./scripts/mysql_install_db --user=sylar --basedir=/Users/sylar/Downloads/mysql-5.6.17/work --datadir=/Users/sylar/Downloads/mysql-5.6.17/work/data
로그인 후 복사

4)设置build和debug时mysqld的运行参数

--user=sylar --basedir=/Users/sylar/Downloads/mysql-5.6.17/work --datadir=/Users/sylar/Downloads/mysql-5.6.17/work/data
로그인 후 복사

这一步eclipse的配置几乎相同。

5)xcode执行run和设置断点debug

运行run之后,可以发现mysqld运行成功。

ps aux | grep mysqld也可以发现mysqld进程。

QQ20140510-1@2x

配置过程中很多细节性的东西,下面是配置过程中得两个错误。

1)安装gdb的过程中,发现缺少readline函数库动态链接库。

Libaray not loaded:@@HOMEBREW_PREFI>@@/opt/readline/lib/libreadline ine.6.dylib Reference from:/usr/localbin/gdb

#安装readline,如缺少其他的依赖库,也可以使用同样的方法进行安装。 brew install readline #如果安装过程中出现提示未链接成功,因为权限不够,需要sudo sudo brew install readline #或者手动建立软链接 sudo brew link readline
로그인 후 복사

2)eclipse提示Error with command:gdb –version

eclipse找不到gdb,gdb未安装,或者没有权限访问。

which gdb

3)安装号gdb之后需要使用mac自带的Keychain Access工具生成证书,并用codesign做签名.

sudo codesign -s gdb-cert /usr/bin/gdb

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP의 빅데이터 구조 처리 능력 PHP의 빅데이터 구조 처리 능력 May 08, 2024 am 10:24 AM

PHP의 빅데이터 구조 처리 능력

iPhone에 시계 앱이 없습니다. 해결 방법 iPhone에 시계 앱이 없습니다. 해결 방법 May 03, 2024 pm 09:19 PM

iPhone에 시계 앱이 없습니다. 해결 방법

Android TV Box, 비공식 Ubuntu 24.04 업그레이드 제공 Android TV Box, 비공식 Ubuntu 24.04 업그레이드 제공 Sep 05, 2024 am 06:33 AM

Android TV Box, 비공식 Ubuntu 24.04 업그레이드 제공

PHP에서 MySQL 쿼리 성능을 최적화하는 방법은 무엇입니까? PHP에서 MySQL 쿼리 성능을 최적화하는 방법은 무엇입니까? Jun 03, 2024 pm 08:11 PM

PHP에서 MySQL 쿼리 성능을 최적화하는 방법은 무엇입니까?

PHP에서 MySQL 백업 및 복원을 사용하는 방법은 무엇입니까? PHP에서 MySQL 백업 및 복원을 사용하는 방법은 무엇입니까? Jun 03, 2024 pm 12:19 PM

PHP에서 MySQL 백업 및 복원을 사용하는 방법은 무엇입니까?

PHP를 사용하여 MySQL 테이블에 데이터를 삽입하는 방법은 무엇입니까? PHP를 사용하여 MySQL 테이블에 데이터를 삽입하는 방법은 무엇입니까? Jun 02, 2024 pm 02:26 PM

PHP를 사용하여 MySQL 테이블에 데이터를 삽입하는 방법은 무엇입니까?

데이터베이스에서 Java 열거 유형의 애플리케이션 시나리오는 무엇입니까? 데이터베이스에서 Java 열거 유형의 애플리케이션 시나리오는 무엇입니까? May 05, 2024 am 09:06 AM

데이터베이스에서 Java 열거 유형의 애플리케이션 시나리오는 무엇입니까?

MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법 MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법 Dec 09, 2024 am 11:42 AM

MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법

See all articles