설치중인 소프트웨어에서 C++ 관련된 에러를 잘 모르겠습니다..
글쓴이: bsjun / 작성시간: 월, 2016/11/21 - 4:42오후
리눅스 Cent OS 에서 어떤 소프트웨어를 설치중인데요
boost버전을 확인하는 단계에서 에러가 발생합니다.
(cached) Checking for boost headers... (cached) found /usr/local/boost_1_62_0/include/boost... (cached) yes Found boost library: boost_system as: boost_system(cached) yes Checking for C library boost_system... yes Found boost library: boost_filesystem as: boost_filesystem(cached) yes Checking for C library boost_filesystem... yes Found boost library: boost_program_options as: boost_program_options(cached) yes Checking for C library boost_program_options... yes Found boost library: boost_regex as: boost_regex(cached) yes Checking for C library boost_regex... yes Found boost library: boost_chrono as: boost_chrono(cached) yes Checking for C library boost_chrono... yes Found boost library: boost_timer as: boost_timer(cached) yes Checking for C library boost_timer... yes Found boost library: boost_unit_test_framework as: boost_unit_test_framework(cached) yes Checking for C library boost_unit_test_framework... yes Checking for Boost version >= 1.54... no Found Boost version: Configuration checks failed. Please check your boost version
보면 Boost version 이 1.54 이상이어야 한다는 말인데, 첫줄에 보시다시피 저는 1.62를 설치했습니다..
exception 부분을 보면 Found Boost version: 하고 현재 제 버전이 떠야 하는데
안 뜨는걸보면 아예 버전을 체크를 못하고 있는게 아닌가 합니다..
이 코드가 버전을 체크하는 부분입니다.
기본 골격은 파이썬인데 내부에 c++ 이 있는 구조 입니다..
(변수 version=1.54 이고, version_n=105400 이 됩니다)
def CheckBoost_version(conf, version): # Boost versions are in format major.minor.subminor v_arr = version.split(".") version_n = 0 if len(v_arr) > 0: version_n += int(v_arr[0])*100000 if len(v_arr) > 1: version_n += int(v_arr[1])*100 if len(v_arr) > 2: version_n += int(v_arr[2]) conf.Message('Checking for Boost version >= %s... ' % (version)) ret = conf.TryRun(""" #include <boost/version.hpp> int main() { return BOOST_VERSION >= %d ? 0 : 1; } """ % version_n, '.cpp')[0] conf.Result(ret) if not ret: print "Found Boost version:", conf.TryRun(""" #include <boost/version.hpp> #include <iostream> int main() { std::cout << BOOST_VERSION / 100000 << "." // major version << BOOST_VERSION / 100 % 1000 << "." // minor version << BOOST_VERSION % 100 // patch level << std::endl; return 0; } """, ".cpp")[1],
이 파일은 include/boost/version.phh 입니다.
// Boost version.hpp configuration header file ------------------------------// // (C) Copyright John maddock 1999. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" rel="nofollow">http://www.boost.org/LICENSE_1_0.txt</a>) // See <a href="http://www.boost.org/libs/config" rel="nofollow">http://www.boost.org/libs/config</a> for documentation #ifndef BOOST_VERSION_HPP #define BOOST_VERSION_HPP // // Caution: this is the only Boost header that is guaranteed // to change with every Boost release. Including this header // will cause a recompile every time a new Boost version is // used. // // BOOST_VERSION % 100 is the patch level // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version #define BOOST_VERSION 106200 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION // but as a *string* in the form "x_y[_z]" where x is the major version // number, y is the minor version number, and z is the patch level if not 0. // This is used by <config/auto_link.hpp> to select which library version to link to. #define BOOST_LIB_VERSION "1_62" #endif
원인을 알 수 있을까요?
Forums:
댓글 달기