在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

cmake管理配置ROOT項目的方法

Geant4模擬學習交流 ? 來源:Geant4模擬學習交流 ? 作者:Geant4模擬學習交流 ? 2021-01-18 17:45 ? 次閱讀

ROOT作為使用C++開發的工具庫,自然少不了cmake這個項目組織工具。本文簡單介紹下cmake管理配置ROOT項目的方法,先上總圖

d14bef10-58a7-11eb-8b86-12bb97331649.png

本項目有一個頭文件,兩個源文件以及一個cmake配置文件組成。

序號 文件名 文件說明
1 CMakeLists.txt Cmake配置文件,用于組織項目的編譯需要的庫、編譯的過程、編譯結果
2 CMakeLists.txt.user Qtcreator打開cmake項目時生成的用戶緩存文件,可忽略
3 CMakeLists.txt.user.4825354

某個緩存文件的版本,可忽略

4 helloworld.h 頭文件
5 helloworld.cpp 源文件
6 main.cpp 源文件的main函數

其中helloworld案例是一個簡單的helloworld類。

main.cpp中的root部分來自于root自帶的案例。

其中cmake配置文件內容如下

cmake_minimum_required(VERSION 3.5)

project(test_root01 LANGUAGES CXX VERSION 0.1.0)

include(CTest)

enable_testing()

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})

find_package(ROOT REQUIRED COMPONENTS MathCore RIO Hist Tree Net Graf Graf3d Gpad ROOTDataFrame Tree TreePlayer Rint )

include(${ROOT_USE_FILE})

include_directories(${CMAKE_SOURCE_DIR} ${ROOT_INCLUDE_DIRS})

add_definitions(${ROOT_CXX_FLAGS})

add_executable(${PROJECT_NAME} main.cpp helloworld.cpp)

target_link_libraries(${PROJECT_NAME} ${ROOT_LIBRARIES})

set(CPACK_PROJECT_NAME ${PROJECT_NAME})

set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})

include(CPack)

下面逐行講解

cmake_minimum_required(VERSION 3.5)

設定cmake最低版本要求

project(test_root01 LANGUAGES CXX VERSION 0.1.0)

定義項目名稱為test_root01,使用的語言C++,本次項目的版本號0.1.0

include(CTest)

包含cmake的一個測試庫,一般結合cppunit庫使用,我用過的測試庫是googletest。這個cppunit以后可以嘗試。

enable_testing()

啟用測試功能

set(CMAKE_CXX_STANDARD 11)

定義c++的標準為c++11

set(CMAKE_CXX_STANDARD_REQUIRED ON)

一般都寫,ON代表強制使用新特性,這個沒仔細研究過,抄上即可,有問題就注釋咯。

list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})

將環境變量ROOTSYS字段對應的值賦給cmake搜索路徑,便于找到ROOT有關的東東

find_package(ROOT REQUIRED COMPONENTS MathCore RIO Hist Tree Net Graf Graf3d Gpad ROOTDataFrame Tree TreePlayer Rint )

找到ROOT庫,并且必須加載后面那一堆東東,其中Gpad好像畫圖必須用吧?

include(${ROOT_USE_FILE})

包含ROOT的一些變量配置文件?

include_directories(${CMAKE_SOURCE_DIR} ${ROOT_INCLUDE_DIRS})

包含一些ROOT的頭文件目錄

add_definitions(${ROOT_CXX_FLAGS})

添加ROOT的一些C++標志

add_executable(${PROJECT_NAME} main.cpp helloworld.cpp)

生成可執行文件,后面是源文件,其中必須 有個main函數

target_link_libraries(${PROJECT_NAME} ${ROOT_LIBRARIES})

鏈接ROOT的庫文件到可執行文件

set(CPACK_PROJECT_NAME ${PROJECT_NAME})

設置cpack的一些信息,這里是名字,用于打包?

set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})

設置cpack的版本

include(CPack)

包含cpack的什么鬼?

可以看出來要配置好環境變量如下圖

d192e6f4-58a7-11eb-8b86-12bb97331649.png

本質就是

source 你的ROOT安裝路徑/thisroot.sh

本文是一種老式的對開發ROOT項目進行cmake配置的方法,但是支持新版本,如果要想研究新的方法,可以參考如下鏈接

https://cliutils.gitlab.io/modern-cmake/chapters/packages/ROOT.html,鏈接如果沒了,請參考下圖自行查找

makefile用戶喜歡的方法

http://ipnp.cz/scheirich/?page_id=178

源碼鏈接如下,如果失效請點擊《閱讀原文》

https://gitee.com/qiangge_666/test_root01

責任編輯:xj

原文標題:CERN ROOT開發環境的cmake配置

文章出處:【微信公眾號:Geant4模擬學習交流】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發環境
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17061
  • CERN
    +關注

    關注

    0

    文章

    5

    瀏覽量

    8305
  • root
    +關注

    關注

    1

    文章

    86

    瀏覽量

    21660

原文標題:CERN ROOT開發環境的cmake配置

文章出處:【微信號:gh_361ab7628207,微信公眾號:Geant4模擬學習交流】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于LockAI視覺識別模塊:C++條碼識別

    (CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) ? # 定義項目根目錄路徑 set(PROJECT_ROOT_P
    發表于 05-27 10:26

    基于LockAI視覺識別模塊:C++圖像采集例程

    (CMAKE_CXX_STANDARD_REQUIRED ON) ? # 定義項目根目錄路徑 set(PROJECT_ROOT_PATH \"${CMAKE
    發表于 04-30 10:52

    在線監測管理系統的智能化功能詳解 多角色權限與多項目管理 多終端適配

    的原則,布局合理、邏輯清晰,提供良好的用戶操作體驗。系統采用創新的三層監測要素架構,支持多項目、多設備、多測點的靈活擴展,可滿足各類小型、中型單(多)項目的管理需求。 系統的主要功能特點包括: 多
    的頭像 發表于 03-19 17:18 ?310次閱讀

    在CubeMX V6.13.0版本上配置CMake工程無法通過編譯怎么解決?

    在 CubeMX V6.13.0 版本上配置CMake 工程無法通過編譯,報錯如下圖
    發表于 03-07 16:59

    為什么無法在OpenVINO? 2021.3源中使用CMAKE編譯ONNX模型?

    嘗試從源版本 2021.3 編譯OpenVINO? 錯誤: ~/項目/OpenVINO/cmake-build-debug/_deps/ext_onnx-src/onnx/onnx_pb.h
    發表于 03-05 08:29

    AI項目管理平臺有什么用

    當今,AI項目的復雜性和多變性給項目管理帶來了前所未有的挑戰。為了有效應對這些挑戰,AI項目管理平臺應運而生。那么,AI
    的頭像 發表于 02-19 11:16 ?333次閱讀

    信息安全管理必備!Linux系統使用SSH登錄root賬號的方法

    Linux遠程管理信息安全必備!本文介紹各類Linux開發板/主板使用SSH登錄root賬號的方法,使用觸覺智能RK3562開發板演示,關注觸覺智能,持續為大家帶來更多使用技巧!
    的頭像 發表于 02-12 15:46 ?571次閱讀
    信息安全<b class='flag-5'>管理</b>必備!Linux系統使用SSH登錄<b class='flag-5'>root</b>賬號的<b class='flag-5'>方法</b>

    Ubuntu20.04取消root賬號自動登錄的方法,觸覺智能RK3568開發板演示

    Ubuntu20.04默認情況下為root賬號自動登錄,本文介紹如何取消root賬號自動登錄,改為通過輸入賬號密碼登錄,使用觸覺智能EVB3568鴻蒙開發板演示
    的頭像 發表于 01-17 15:42 ?746次閱讀
    Ubuntu20.04取消<b class='flag-5'>root</b>賬號自動登錄的<b class='flag-5'>方法</b>,觸覺智能RK3568開發板演示

    聲明式資源管理方法

    1、管理k8s核心資源的三種基礎方法 陳述式管理方法:主要依賴命令行CLI工具進行管理 聲明式管理方法:主要依賴統一資源
    的頭像 發表于 12-31 10:16 ?505次閱讀

    智能攤鋪壓實質量監測管理系統為項目的順利進行提供有力保障

    ? ? ? 隨著科技的不斷發展,智能攤鋪壓實質量監測管理系統在路面施工領域扮演著越來越重要的角色。這一系統通過實時監測和管理,極大地提升了路面施工的質量,為項目的順利進行提供了有力保障。接下來,我們
    的頭像 發表于 12-18 12:32 ?277次閱讀
    智能攤鋪壓實質量監測<b class='flag-5'>管理</b>系統為<b class='flag-5'>項目的</b>順利進行提供有力保障

    cmp項目管理工具的優缺點

    CMP項目管理工具,在不同的語境下有不同的含義。一種是指綜合項目管理平臺(Comprehensive Management Platform),它旨在整合和優化
    的頭像 發表于 12-17 09:42 ?752次閱讀

    linux網卡配置文件

    網卡配置文件 ? ? 網卡目錄[root@localhost opt]# ls /etc/sysconfig/network-scripts/網卡文件名字,和我們ifconfig看到的一樣
    的頭像 發表于 12-10 10:09 ?749次閱讀

    AI項目管理平臺怎么用

    AI項目管理平臺是一種集成了項目管理工具、AI開發環境和數據分析能力的綜合性平臺。接下來,AI部落小編為您梳理AI項目
    的頭像 發表于 11-13 09:38 ?615次閱讀

    【米爾NXP i.MX 93開發板試用評測】3、NXP的MCU工程目錄結構和源碼分析

    MCU工程的構建系統 NXP使用的是CMake構建系統,這也是目前非常常見的一種構建系統。 CMake是一個跨平臺的自動化構建系統,它使用配置文件(稱為CMakeLists.txt)來生成標準的構建
    發表于 09-21 21:11

    Jtti:MySQL初始化操作如何設置root密碼

    MySQL初始化時,可以通過以下步驟設置root密碼: 打開命令行工具,使用以下命令啟動MySQL服務: ? sudo service mysql start ? 使用以下命令登錄MySQL服務器
    的頭像 發表于 08-08 16:45 ?769次閱讀
    主站蜘蛛池模板: 一级网站在线观看 | 亚洲资源在线播放 | 国产欧美精品一区二区色综合 | 999毛片 | 99热久久精品免费精品 | 午夜三级理论在线观看视频 | 免费看污黄视频软件 | 成人国产在线视频 | 欧美黄色片免费 | 日本黄色网址免费 | 天天添| 在线天堂中文有限公司 | 他也色在线视频 | 一级黄色录像视频 | 天天搞天天干 | 全免费a级毛片免费看不卡 全日本爽视频在线 | 99久久国产免费 - 99久久国产免费 | 天天在线精品视频在线观看 | 五月婷婷激情视频 | 国产精品人人爱一区二区白浆 | 国产高清一级视频在线观看 | 午夜黄色影院 | 欧美黄视频在线观看 | 性欧美在线 | 亚洲午夜顶级嘿嘿嘿影院 | 高清视频免费观看 | 手机在线亚洲 | 亚洲午夜久久久久国产 | 日韩免费网站 | 快色视频免费 | 久综合网 | 四虎亚洲国产成人久久精品 | 国产三级香港三级人妇 | 77788色淫网站女女免费视频 | 成人性色生活片免费看爆迷你毛片 | 日日夜夜天天人人 | 精品国产乱码久久久久久浪潮 | 国产精品一区在线观看你懂的 | 717影院理伦午夜论八戒 | 看天堂 | 亚洲不卡免费视频 |