Re: python SWIG build errors on OSX

Posted by frederic.degraeve (Bugzilla) on
URL: http://quantlib.414.s1.nabble.com/python-SWIG-build-errors-on-OSX-tp6020p6022.html

Hello Akhil,

Your compiler tells you at the beginning :
/sw/include/boost/range/iterator_range.hpp: In member function
'IteratorT boost::iterator_range<IteratorT>::begin() const':
/sw/include/boost/range/iterator_range.hpp:265: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp:265: error: (if you use
'-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)

It doesn't seem to come from Quantlib but from Boost. In a first step,
you can try to use the option '-fpermissive' as advised by your
compiler.  I would suppose that g++ doesn't use the right options in
this case ("cc1plus: warning: command line option
"-Wstrict-prototypes" is valid for C/ObjC but not for C++1"). If it
compiles well then try to find a better solution than -fpermissive.

Tell me if it helps you.
Regards,
Frédéric Degraeve

________________________________________
From: [hidden email]
[mailto:[hidden email]] On Behalf Of
Akhil Shah
Sent: lundi 5 mai 2008 20:08
To: [hidden email]
Subject: [Quantlib-users] python SWIG build errors on OSX

Hi,
I am just beginning to use QuantLib, and am having trouble with the
'python setup.py build' command for the SWIG wrapper on OSX.  I was
able to successfully build and install the quantlib libraries (stored
in /usr/local/lib, with header files stored in /usr/local/include/ql
as per default settings) and was also able to create the SWIG wrappers
with 'python setup.py wrap'.

Info that may be relevant:
OS = OS X 10.4.11
Boost v1.35
QuantLib r13819
Swig 1.3.20

Thanks in Advance,
Akhil

Let me just apologize for the screen dump below, but may be this will
help in figuring out my error:
running build
running build_py
running build_ext
building 'QuantLib._QuantLib' extension
g++ -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd
-fPIC -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall
-Wstrict-prototypes
-I/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-I/usr/local/include -I/sw/include -c QuantLib/quantlib_wrap.cpp -o
build/temp.macosx-10.3-i386-2.5/QuantLib/quantlib_wrap.o -Wno-unused
cc1plus: warning: command line option "-Wstrict-prototypes" is valid
for C/ObjC but not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid
for C/ObjC but not for C++
/sw/include/boost/range/iterator_range.hpp: In member function
'IteratorT boost::iterator_range<IteratorT>::begin() const':
/sw/include/boost/range/iterator_range.hpp:265: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp:265: error: (if you use
'-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)
/sw/include/boost/range/iterator_range.hpp: In member function
'IteratorT boost::iterator_range<IteratorT>::end() const':
/sw/include/boost/range/iterator_range.hpp:271: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'typename boost::iterator_difference<Iterator>::type
boost::iterator_range<IteratorT>::size() const':
/sw/include/boost/range/iterator_range.hpp:277: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function 'bool
boost::iterator_range<IteratorT>::empty() const':
/sw/include/boost/range/iterator_range.hpp:283: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function 'bool
boost::iterator_range<IteratorT>::equal(const
boost::iterator_range<IteratorT>&) const':
/sw/include/boost/range/iterator_range.hpp:302: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'boost::iterator_range<IteratorT>&
boost::iterator_range<IteratorT>::advance_begin(typename
boost::iterator_difference<Iterator>::type)':
/sw/include/boost/range/iterator_range.hpp:362: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'boost::iterator_range<IteratorT>&
boost::iterator_range<IteratorT>::advance_end(typename
boost::iterator_difference<Iterator>::type)':
/sw/include/boost/range/iterator_range.hpp:369: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'IteratorT boost::iterator_range<IteratorT>::begin() const':
/sw/include/boost/range/iterator_range.hpp:265: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp:265: error: (if you use
'-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)
/sw/include/boost/range/iterator_range.hpp: In member function
'IteratorT boost::iterator_range<IteratorT>::end() const':
/sw/include/boost/range/iterator_range.hpp:271: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'typename boost::iterator_difference<Iterator>::type
boost::iterator_range<IteratorT>::size() const':
/sw/include/boost/range/iterator_range.hpp:277: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function 'bool
boost::iterator_range<IteratorT>::empty() const':
/sw/include/boost/range/iterator_range.hpp:283: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function 'bool
boost::iterator_range<IteratorT>::equal(const
boost::iterator_range<IteratorT>&) const':
/sw/include/boost/range/iterator_range.hpp:302: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'boost::iterator_range<IteratorT>&
boost::iterator_range<IteratorT>::advance_begin(typename
boost::iterator_difference<Iterator>::type)':
/sw/include/boost/range/iterator_range.hpp:362: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
/sw/include/boost/range/iterator_range.hpp: In member function
'boost::iterator_range<IteratorT>&
boost::iterator_range<IteratorT>::advance_end(typename
boost::iterator_difference<Iterator>::type)':
/sw/include/boost/range/iterator_range.hpp:369: error: there are no
arguments to 'is_singular' that depend on a template parameter, so a
declaration of 'is_singular' must be available
QuantLib/quantlib_wrap.cpp: At global scope:
QuantLib/quantlib_wrap.cpp:108473: error: 'American' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108474: error: 'Bermudan' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108475: error: 'European' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108533: error: 'ConstantExtrapolation' is
not a member of 'BlackVarianceSurfacePtr'
QuantLib/quantlib_wrap.cpp:108534: error:
'InterpolatorDefaultExtrapolation' is not a member of
'BlackVarianceSurfacePtr'
QuantLib/quantlib_wrap.cpp:108554: error: 'Call' is not a member of
'boost::shared_ptr<QuantLib::Callability>'
QuantLib/quantlib_wrap.cpp:108555: error: 'Put' is not a member of
'boost::shared_ptr<QuantLib::Callability>'
QuantLib/quantlib_wrap.cpp:108575: error: 'NoSide' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108576: error: 'Upper' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108577: error: 'Lower' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108585: error: 'Receiver' is not a member
of 'VanillaSwapPtr'
QuantLib/quantlib_wrap.cpp:108586: error: 'Payer' is not a member of
'VanillaSwapPtr'
QuantLib/quantlib_wrap.cpp: At global scope:
QuantLib/quantlib_wrap.cpp:108473: error: 'American' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108474: error: 'Bermudan' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108475: error: 'European' is not a member
of 'boost::shared_ptr<QuantLib::Exercise>'
QuantLib/quantlib_wrap.cpp:108533: error: 'ConstantExtrapolation' is
not a member of 'BlackVarianceSurfacePtr'
QuantLib/quantlib_wrap.cpp:108534: error:
'InterpolatorDefaultExtrapolation' is not a member of
'BlackVarianceSurfacePtr'
QuantLib/quantlib_wrap.cpp:108554: error: 'Call' is not a member of
'boost::shared_ptr<QuantLib::Callability>'
QuantLib/quantlib_wrap.cpp:108555: error: 'Put' is not a member of
'boost::shared_ptr<QuantLib::Callability>'
QuantLib/quantlib_wrap.cpp:108575: error: 'NoSide' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108576: error: 'Upper' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108577: error: 'Lower' is not a member of
'boost::shared_ptr<QuantLib::BoundaryCondition<QuantLib::TridiagonalOperator>
>'
QuantLib/quantlib_wrap.cpp:108585: error: 'Receiver' is not a member
of 'VanillaSwapPtr'
QuantLib/quantlib_wrap.cpp:108586: error: 'Payer' is not a member of
'VanillaSwapPtr'
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:
In constructor 'std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&)
[with _U1 = QuantLib::Date*, _U2 = double, _T1 = QuantLib::Date, _T2 =
QuantLib::DiscountFactor]':
QuantLib/quantlib_wrap.cpp:12630:   instantiated from here
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:90:
error: invalid conversion from 'QuantLib::Date* const' to
'QuantLib::BigInteger'
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:90:
error:   initializing argument 1 of
'QuantLib::Date::Date(QuantLib::BigInteger)'
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:
In constructor 'std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&)
[with _U1 = QuantLib::Date*, _U2 = double, _T1 = QuantLib::Date, _T2 =
QuantLib::DiscountFactor]':
QuantLib/quantlib_wrap.cpp:12630:   instantiated from here
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:90:
error: invalid conversion from 'QuantLib::Date* const' to
'QuantLib::BigInteger'
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h:90:
error:   initializing argument 1 of
'QuantLib::Date::Date(QuantLib::BigInteger)'
lipo: can't figure out the architecture type of: /var/tmp//cc5Kd8bJ.out
error: command 'g++' failed with exit status 1

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users