CMake可执行文件的运行速度比在ROOT中运行的速度慢

时间:2018-08-03 19:39:59

标签: makefile cmake gsl

我用以下库为ROOT编写了一个宏:

#include <iostream>
#include <math.h>
#include <vector>
#include <iomanip>
#include <time.h> 
#include <stdio.h>

#include <gsl/gsl_matrix.h>
#include <gsl/gsl_odeiv2.h>

//ROOT libraries
#include <TTree.h>
#include <TFile.h>

在具有.x script.cpp的ROOT中运行时,它可以正常工作,并且需要0.25秒才能写入根文件。

然后,我使用CMake创建了一个可执行文件。为此,我创建了下一个CMakeLists文件:

此CMakeLists文件位于.cpp文件所在的目录之外

cmake_minimum_required(VERSION 2.6)
project(CMAKE_TEST)


find_package(GSL)
find_package(ROOT REQUIRED COMPONENTS)


set(CMAKE_CXX_FLAGS "-g++ -O2 -Wall")
set(CMAKE_CXX_FLAGS ${ROOT_CXX_FLAGS})
add_subdirectory(script_sub)

这是内部文件(与.cpp文件相同的位置)

include_directories(${CMAKE_TEST_SOURCE_DIR}/script_sub)
link_directories(${CMAKE_TEST_BINARY_DIR}/script_sub)


include(${ROOT_USE_FILE})

set(CORELIBS ${ROOT_LIBRARIES} ${GSL_LIBRARIES} m)

add_executable(script script.cpp)
target_link_libraries(script ${CORELIBS})

CMake可以很好地创建Makefile,然后我也可以毫无问题地运行make。问题是,当通过./script运行可执行文件时,这将在0.92秒内写入根文件,即,它比在ROOT中运行代码要慢。结果是正确的,并且没有看到错误消息。 这怎么可能?

0 个答案:

没有答案