我试图在我的C++项目中使用根目录,因为我无法让CMake正确地链接根库。到目前为止,该项目只由一个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})当我试图在main.cpp文件中包含"TH1F.h“头文件时,我得到了大量的编译时错误。有谁可以帮我?我需要生成一个字典吗?
发布于 2019-10-18 03:29:39
我修改了我的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.https://stackoverflow.com/questions/58422567
复制相似问题