首頁 資料庫 mysql教程 CMake用法笔记

CMake用法笔记

Jun 07, 2016 pm 05:12 PM
cmake oracle 資料庫

最近在学习Mysql的源代码,用到了CMake做为Build工具。通过CMake去扫描系统的一些配置,会生成config.h文件,这个头文件里包含了

最近在学习Mysql的源代码,用到了CMake做为Build工具。

通过CMake去扫描系统的一些配置,会生成config.h文件,,这个头文件里包含了一系列的以HAVE_为前缀的宏。

在源代码根目录下的config.h.cmake  是模板文件,包含了所有的扫描项。

在Mysql的影子编译目录里面(我一般都是用影子编译,保持源代码目录的纯洁性),我们可以找到config.h,CMake脚本会把config.h拷贝成另外一个内容完全一模一样的my_config.h文件。

我们现在以 HAVE_NPTL 这个宏使用在Mysql源代码中的这种情况为例学习CMake的原理:

我们浏览Mysql目录的CMake目录,这个是Mysql专有的CMake脚本,我们通过查找,在cmake\os\linux.cmake中找到了 HAVE_NPTL的定义。

在这个文件里HAVE_NPTL是固定设为1的,我们继续学习非固定设置的情况。

比如  CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h  HAVE_DECL_SHM_HUGETLB)

该CMake文件的包含了 INCLUDE(CheckSymbolExists)

CheckSymbolExists 是CMake的公共模块,我的机器上位于/usr/share/cmake-2.8/Modules目录下。

我们继续研究该文件:

阅读了其源代码后,MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)

这个宏的作用就是,查找相关文件(FILES)里面是否包含相关符号(SYMBOL) 如果存在则设置VARIABLE 为1,MESSAGE宏会在屏幕上做相关打印。

上面的列子中就是在 sys/shm.h 文件里面查找SHM_HUGETLB 符号。

我们查看  /usr/include/shm.h

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

oracle資料庫日誌會保存多久 oracle資料庫日誌會保存多久 May 10, 2024 am 03:27 AM

oracle資料庫日誌會保存多久

oracle資料庫伺服器硬體配置需求 oracle資料庫伺服器硬體配置需求 May 10, 2024 am 04:00 AM

oracle資料庫伺服器硬體配置需求

oracle需要多少內存 oracle需要多少內存 May 10, 2024 am 04:12 AM

oracle需要多少內存

用oracle資料庫需要多大內存 用oracle資料庫需要多大內存 May 10, 2024 am 03:42 AM

用oracle資料庫需要多大內存

oracle定時任務每天都會執行一次建立步驟 oracle定時任務每天都會執行一次建立步驟 May 10, 2024 am 03:03 AM

oracle定時任務每天都會執行一次建立步驟

oracle資料庫需要多大內存 oracle資料庫需要多大內存 May 10, 2024 am 02:09 AM

oracle資料庫需要多大內存

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

在PHP中使用MySQLi建立資料庫連線的詳盡教學

oracle怎麼啟動監聽程序 oracle怎麼啟動監聽程序 May 10, 2024 am 03:12 AM

oracle怎麼啟動監聽程序

See all articles