一个小的C ++项目需要一分钟才能编译,为什么?

时间:2016-10-28 05:44:31

标签: c++ linux compilation c++14

我正在开发一个C ++项目,我有几十个模板类,当然我已经在.hpp文件中实现了,但是当我想编译项目时,编译和输出需要将近一分钟目标文件的7.8MB和执行文件的4.2MB

我知道编译器必须实例化每个模板对象,但它应该花费这么长时间吗?它不会缓存任何内容吗?

很想知道在什么情况下如何让编译更快?

P.S:
工作系统: Linux 4.4.0-45-generic#66~14.04.1-Ubuntu GNU / Linux
G ++版本: g ++(Ubuntu 6.2.0-3ubuntu11~14.04)6.2.0 20160901
Working C ++标准: C ++ 14
Cmake版本: 3.6.2
制作版本: GNU Make 3.81

编辑:需要提一下,我在这个项目中广泛使用了boost <boost/multi_array.hpp>

Cmake文件:

cmake_minimum_required(VERSION 3.6)

SET(CMAKE_CXX_FLAGS "-std=c++14 -pthread")

project(THESIS)
set(CMAKE_BUILD_TYPE Debug)

file(GLOB_RECURSE ISOURCES "src/*.cpp")
file(GLOB_RECURSE IHEADER "inc/*.hpp" "inc/*.h" "lib_thesis/")

set (IINCLUDE_DIRS "")
foreach (_headerFile ${IHEADER})
    get_filename_component(_dir ${_headerFile} PATH)
    list (APPEND IINCLUDE_DIRS ${_dir})
endforeach()
list(REMOVE_DUPLICATES IINCLUDE_DIRS)

include_directories(${IINCLUDE_DIRS} "." "/usr/include/eigen3")

add_executable (thesis main.cpp ${ISOURCES})

target_link_libraries (thesis pthread boost_program_options)

0 个答案:

没有答案