Интеграция ROOT с CMake - PullRequest
       8

Интеграция ROOT с CMake

0 голосов
/ 17 октября 2019

Я пытаюсь использовать ROOT в своем проекте C ++, так как я не могу заставить CMake правильно связать библиотеки ROOT. На данный момент проект состоит только из файла main.cpp. Вот мой файл CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

project(FirstProject)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

file(GLOB src "src/*.cpp")

# telling CMake where to find the ROOT installation
list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})

# locating the ROOT package
find_package(ROOT REQUIRED COMPONENTS RIO Net Hist)

# include ROOT functions and macros
include_directories(${CMAKE_SOURCE_DIR} ${ROOT_INCLUDE_DIRS})
add_definitions(${ROOT_CXX_FLAGS})

add_executable(main ${src})
# set_target_properties(main PROPERTIES LINKER_LANGUAGE CXX)
target_compile_options(main PUBLIC -Wall)
target_compile_options(main PUBLIC -Wextra)
target_compile_options(main PUBLIC --std=c++17)
target_compile_options(main PUBLIC -Iinclude)

target_link_libraries(main ${ROOT_LIBRARIES})

Когда я пытаюсь включить заголовок «TH1F.h» в мой файл main.cpp, я получаю массу ошибок во время компиляции. Может кто-нибудь помочь мне? Нужно ли создавать словарь?

1 Ответ

0 голосов
/ 17 октября 2019

Я изменил свой файл CmakeLists.txt. Это выглядит так:

cmake_minimum_required(VERSION 3.10)

project(FirstProject)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

file(GLOB src "src/*.cpp")

# locating the ROOT package
find_package(ROOT 6.16 CONFIG REQUIRED)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

add_executable(main ${src})
set_target_properties(main PROPERTIES LINKER_LANGUAGE CXX)
target_compile_options(main PUBLIC -Wall)
target_compile_options(main PUBLIC -Wextra)
target_compile_options(main PUBLIC --std=c++17)

target_link_libraries(main PUBLIC ROOT::Hist)

Ошибка, которую я получаю сейчас:

In file included from /home/Me/Desktop/MyDirectory/Code/FirstProject/src/header.cpp:1:0:
/home/Me/Desktop/MyDirectoory/Code/FirstProject/include/header.h:7:10: fatal error: TH1F.h: No such file or directory
 #include <TH1F.h>
          ^~~~~~~~
compilation terminated.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...