首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译错误与boost-python和lapack

编译错误与boost-python和lapack
EN

Stack Overflow用户
提问于 2016-04-12 09:45:59
回答 1查看 655关注 0票数 0

我创建了一个程序,使用boost来提取python变量,并为求解矩阵创建了一个翻版程序。然而,我在编译过程中遇到了一些困难。

下面是我的包含和第一行代码:

代码语言:javascript
复制
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include "lapacke.h"
#include <math.h>

#include <omp.h>

#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <stdarg.h>
#include <math.h>
#include <sys/times.h>

#include <exception>
#include <fstream>
#include <iostream>
#include <cassert>
#include <algorithm>
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <list>
#include <set>
#include <limits>

#include <Python.h>
#include <arrayobject.h>

#include <boost/timer/timer.hpp>
#include <boost/python.hpp>
#include "boost/python/extract.hpp"


using namespace std;

编译会导致大量错误,我很难解释这个输出。以下是一个示例:

代码语言:javascript
复制
In file included from /usr/include/c++/4.9/complex.h:36:0,
                 from /usr/include/lapacke.h:73,
                 from /project/git/CLCCD/whittaker/wfilter.cpp:4:
/usr/include/boost/operators.hpp:308:26: error: expected identifier before ‘(’ token
 template <class T, class I, class R, class B = ::boost::detail::empty_base<T> >
                          ^
/usr/include/boost/operators.hpp:308:26: error: expected ‘)’ before ‘__extension__’
 template <class T, class I, class R, class B = ::boost::detail::empty_base<T> >
                          ^
/usr/include/boost/operators.hpp:308:26: error: expected ‘>’ before ‘__extension__’
/usr/include/boost/operators.hpp:308:26: error: expected unqualified-id before ‘)’ token
 template <class T, class I, class R, class B = ::boost::detail::empty_base<T> >
                          ^
In file included from /usr/include/boost/system/error_code.hpp:17:0,
                 from /usr/include/boost/chrono/detail/system.hpp:12,
                 from /usr/include/boost/chrono/system_clocks.hpp:64,
                 from /usr/include/boost/chrono/chrono.hpp:13,
                 from /usr/include/boost/timer/timer.hpp:14,
                 from /project/git/CLCCD/whittaker/wfilter.cpp:37:
/usr/include/boost/operators.hpp:649:7: error: ‘indexable’ was not declared in this scope
     , indexable<T, D, R, B
       ^
/usr/include/boost/operators.hpp:650:7: error: wrong number of template arguments (6, should be 3)
       > > > > {};
       ^
/usr/include/boost/operators.hpp:420:8: error: provided for ‘template<class T, class U, class B> struct boost::additive2’
 struct additive2
        ^
/usr/include/boost/operators.hpp:650:9: error: template argument 2 is invalid
       > > > > {};
         ^
/usr/include/boost/operators.hpp:650:11: error: template argument 3 is invalid
       > > > > {};
           ^
/usr/include/boost/operators.hpp:650:13: error: expected ‘{’ before ‘>’ token
       > > > > {};
             ^
/usr/include/boost/operators.hpp:650:13: error: expected unqualified-id before ‘>’ token
/usr/include/boost/operators.hpp:851:1: error: ‘indexable’ is not a member of ‘boost’
 BOOST_OPERATOR_TEMPLATE3(indexable)
 ^
/usr/include/boost/operators.hpp:851:1: error: ‘indexable’ is not a member of ‘boost’
/usr/include/boost/operators.hpp:851:1: error: wrong number of template arguments (4, should be 1)
 BOOST_OPERATOR_TEMPLATE3(indexable)
 ^
/usr/include/boost/operators.hpp:731:26: error: provided for ‘template<class T> struct boost::is_chained_base’
 template<class T> struct is_chained_base {
                          ^
/usr/include/boost/operators.hpp:851:1: error: expected unqualified-id before ‘>’ token
 BOOST_OPERATOR_TEMPLATE3(indexable)
 ^
In file included from /usr/include/c++/4.9/complex.h:36:0,
                 from /usr/include/lapacke.h:73,
                 from /project/git/CLCCD/whittaker/wfilter.cpp:4:
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:34:15: error: expected ‘)’ before ‘__extension__’
 template< int I > class spinlock_pool
               ^
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:34:15: error: expected ‘>’ before ‘__extension__’
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:34:15: error: expected unqualified-id before ‘)’ token
 template< int I > class spinlock_pool
               ^
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:75:15: error: expected ‘)’ before ‘__extension__’
 template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
               ^
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:75:15: error: expected ‘>’ before ‘__extension__’
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:75:15: error: expected unqualified-id before ‘)’ token
 template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
               ^
 // some other lines ...
     In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /usr/include/boost/python/converter/shared_ptr_to_python.hpp:10,
                 from /usr/include/boost/python/converter/arg_to_python.hpp:15,
                 from /usr/include/boost/python/call.hpp:15,
                 from /usr/include/boost/python/object_core.hpp:14,
                 from /usr/include/boost/python/args.hpp:25,
                 from /usr/include/boost/python.hpp:11,
                 from /project/git/CLCCD/whittaker/wfilter.cpp:38:
/usr/include/boost/smart_ptr/shared_ptr.hpp: In function ‘boost::shared_ptr<T> boost::atomic_load(const boost::shared_ptr<T>*)’:
/usr/include/boost/smart_ptr/shared_ptr.hpp:954:5: error: ‘spinlock_pool’ is not a member of ‘boost::detail’
     boost::detail::spinlock_pool<2>::scoped_lock lock( p );
     ^
/usr/include/boost/smart_ptr/shared_ptr.hpp:954:36: error: ‘::scoped_lock’ has not been declared
     boost::detail::spinlock_pool<2>::scoped_lock lock( p );
                                    ^
/usr/include/boost/smart_ptr/shared_ptr.hpp: In function ‘void boost::atomic_store(boost::shared_ptr<T>*, boost::shared_ptr<T>)’:
/usr/include/boost/smart_ptr/shared_ptr.hpp:965:5: error: ‘spinlock_pool’ is not a member of ‘boost::detail’
     boost::detail::spinlock_pool<2>::scoped_lock lock( p );
     ^
/usr/include/boost/smart_ptr/shared_ptr.hpp:965:36: error: ‘::scoped_lock’ has not been declared
     boost::detail::spinlock_pool<2>::scoped_lock lock( p );
                                    ^
// and it continues...

Q :,我对编译的了解有限,倾向于假设失败和增强之间存在冲突,但如何解决呢?

Q :,这与cpp文件中定义的名称空间有关吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-12 12:59:51

事实上,这是一个包括秩序在内的问题.

通过在boost后面加上#include "lapacke.h“,它解决了这些问题.

我现在有其他问题..。但那是另一个故事..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36569538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档