why aren't I getting multithreaded versions of the libraries that need to be built?
This is in cygwin, using gcc. initially I used the following (I don't use python and don't have MPI, but wanted everything else): $ ./bootstrap.sh --with-libraries=chrono,date_time,exception,filesystem,graph,graph_parallel, iostreams,math,program_options,random,regex,serialization,signals,system,tes t,thread,wave ./b2 install I then tried building QuantLib, which makes extensive use of boost, including the test framework. But it failed because it tried linking to a multihtreaded build of the test frameqwork. I therefore tried the following, assuming that like make, it would just build and install those targets that had not been built the first time. $ ./bootstrap.sh --with-libraries=chrono,date_time,exception,filesystem,graph,graph_parallel, iostreams,math,program_options,random,regex,serialization,signals,system,tes t,thread,wave link=static link=shared threading=single threading=multi ./b2 install Unfortunately, it did not create the multithreaded build of the testframework that QuantLib requires. What did I miss that is preventing me from getting the multihtreaded builds of the required libraries? Thanks Ted
AMDG On 08/29/2011 08:12 AM, Ted Byers wrote:
This is in cygwin, using gcc.
initially I used the following (I don't use python and don't have MPI, but wanted everything else):
$ ./bootstrap.sh --with-libraries=chrono,date_time,exception,filesystem,graph,graph_parallel, iostreams,math,program_options,random,regex,serialization,signals,system,tes t,thread,wave
./b2 install
I then tried building QuantLib, which makes extensive use of boost, including the test framework. But it failed because it tried linking to a multihtreaded build of the test frameqwork.
<snip>
You are getting a multithreaded library. The problem is that the name is not what QuantLib apparently expects. To get the old naming convention, use --layout=tagged. In Christ, Steven Watanabe
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users- bounces@lists.boost.org] On Behalf Of Steven Watanabe Sent: August-29-11 11:42 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] why aren't I getting multithreaded versions of
Thanks Steve, Alas, no joy. I followed your direction, and saw b2 building or revising a few targets, but the result of make in QuantLib's directory (version 1.1 with boost 1.47.0 ), is: libtool: link: g++ -g -O2 -o .libs/quantlib-test-suite.exe quantlibtestsuite.o americanoption.o array.o asianoptions.o assetswap.o autocovariances.o barrieroption.o basketoption.o batesmodel.o bermudanswaption.o blackdeltacalculator.o bonds.o brownianbridge.o calendars.o capfloor.o capflooredcoupon.o cashflows.o cdo.o cdsoption.o chooseroption.o cliquetoption.o cms.o commodityunitofmeasure.o compoundoption.o convertiblebonds.o covariance.o creditdefaultswap.o curvestates.o dates.o daycounters.o defaultprobabilitycurves.o digitalcoupon.o digitaloption.o distributions.o dividendoption.o europeanoption.o everestoption.o exchangerate.o extendedtrees.o factorial.o fastfouriertransform.o fdheston.o fdmlinearop.o forwardoption.o gaussianquadratures.o gjrgarchmodel.o hestonmodel.o himalayaoption.o hybridhestonhullwhiteprocess.o inflation.o inflationcapfloor.o inflationcapflooredcoupon.o inflationvolatility.o instruments.o integrals.o interestrates.o interpolations.o jumpdiffusion.o libormarketmodel.o libormarketmodelprocess.o linearleastsquaresregression.o lookbackoptions.o lowdiscrepancysequences.o margrabeoption.o marketmodel.o marketmodel_cms.o marketmodel_smm.o marketmodel_smmcapletalphacalibration.o marketmodel_smmcapletcalibration.o marketmodel_smmcaplethomocalibration.o matrices.o mclongstaffschwartzengine.o mersennetwister.o money.o nthtodefault.o operators.o optimizers.o optionletstripper.o overnightindexedswap.o pagodaoption.o pathgenerator.o period.o piecewiseyieldcurve.o quantooption.o quotes.o rangeaccrual.o riskstats.o rngtraits.o rounding.o sampledcurve.o shortratemodels.o solvers.o stats.o surface.o swap.o swapforwardmappings.o swaption.o swaptionvolatilitycube.o swaptionvolatilitymatrix.o termstructures.o timeseries.o transformedgrid.o tqreigendecomposition.o tracing.o utilities.o variancegamma.o varianceoption.o varianceswaps.o volatilitymodels.o -lboost_unit_test_framework-mt ./.libs/libUnitMain.a ../ql/.libs/libQuantLib.a /usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a -L/usr/lib/gcc/i686-pc-cygwin/4.3.4 ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `main': /home/Ted/QuantLib-1.1/test-suite/main.cpp:11: undefined reference to `boost::unit_test::unit_test_main(bool (*)(), int, char**)' ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `_Z13init_functionv': /home/Ted/QuantLib-1.1/test-suite/main.cpp:7: undefined reference to `boost::unit_test::framework::master_test_suite()' collect2: ld returned 1 exit status make[1]: *** [quantlib-test-suite.exe] Error 1 make[1]: Leaving directory `/home/Ted/QuantLib-1.1/test-suite' make: *** [all-recursive] Error 1 It is looking for a file ' libboost_unit_test_framework-mt.a', which still does not exist. I assume ' boost::unit_test::framework::master_test_suite' is in that library. The boost documentation I looked at indicates I ought to see libraries ending in '-mt' if the library supports multithreading. What else ought I try? the
libraries that need to be built?
AMDG
On 08/29/2011 08:12 AM, Ted Byers wrote:
This is in cygwin, using gcc.
initially I used the following (I don't use python and don't have MPI, but wanted everything else):
$ ./bootstrap.sh --with-libraries=chrono,date_time,exception,filesystem,graph,graph_par allel, iostreams,math,program_options,random,regex,serialization,signals,syst em,tes t,thread,wave
./b2 install
I then tried building QuantLib, which makes extensive use of boost, including the test framework. But it failed because it tried linking to a multihtreaded build of the test frameqwork.
<snip>
You are getting a multithreaded library. The problem is that the name is not what QuantLib apparently expects. To get the old naming convention, use --layout=tagged.
In Christ, Steven Watanabe
AMDG On 08/29/2011 11:34 AM, Ted Byers wrote:
Thanks Steve,
Alas, no joy. I followed your direction, and saw b2 building or revising a few targets, but the result of make in QuantLib's directory (version 1.1 with boost 1.47.0 ), is:
libtool: link: g++ -g -O2 -o .libs/quantlib-test-suite.exe <snip> -lboost_unit_test_framework-mt ./.libs/libUnitMain.a ../ql/.libs/libQuantLib.a /usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a -L/usr/lib/gcc/i686-pc-cygwin/4.3.4 ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `main': /home/Ted/QuantLib-1.1/test-suite/main.cpp:11: undefined reference to `boost::unit_test::unit_test_main(bool (*)(), int, char**)' ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `_Z13init_functionv': /home/Ted/QuantLib-1.1/test-suite/main.cpp:7: undefined reference to `boost::unit_test::framework::master_test_suite()' collect2: ld returned 1 exit status make[1]: *** [quantlib-test-suite.exe] Error 1 make[1]: Leaving directory `/home/Ted/QuantLib-1.1/test-suite' make: *** [all-recursive] Error 1
It is looking for a file ' libboost_unit_test_framework-mt.a', which still does not exist.
That's not what the error message says. -lboost_unit_test_framework-mt needs to come after ./.libs/libUnitMain.a.
I assume ' boost::unit_test::framework::master_test_suite' is in that library. The boost documentation I looked at indicates I ought to see libraries ending in '-mt' if the library supports multithreading.
What else ought I try?
In Christ, Steven Watanabe
Thanks Steven, So then, the makefile produced by QuantLib's configure script is broken. I'll try a manual fix, and see what happens. Cheers Ted
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users- bounces@lists.boost.org] On Behalf Of Steven Watanabe Sent: August-29-11 3:33 PM To: boost-users@lists.boost.org Subject: Re: [Boost-users] why aren't I getting multithreaded versions of the libraries that need to be built?
AMDG
On 08/29/2011 11:34 AM, Ted Byers wrote:
Thanks Steve,
Alas, no joy. I followed your direction, and saw b2 building or revising a few targets, but the result of make in QuantLib's directory (version 1.1 with boost 1.47.0 ), is:
libtool: link: g++ -g -O2 -o .libs/quantlib-test-suite.exe <snip> -lboost_unit_test_framework-mt ./.libs/libUnitMain.a ../ql/.libs/libQuantLib.a /usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a -L/usr/lib/gcc/i686-pc-cygwin/4.3.4 ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `main': /home/Ted/QuantLib-1.1/test-suite/main.cpp:11: undefined reference to `boost::unit_test::unit_test_main(bool (*)(), int, char**)' ./.libs/libUnitMain.a(libUnitMain_la-main.o): In function `_Z13init_functionv': /home/Ted/QuantLib-1.1/test-suite/main.cpp:7: undefined reference to `boost::unit_test::framework::master_test_suite()' collect2: ld returned 1 exit status make[1]: *** [quantlib-test-suite.exe] Error 1 make[1]: Leaving directory `/home/Ted/QuantLib-1.1/test-suite' make: *** [all-recursive] Error 1
It is looking for a file ' libboost_unit_test_framework-mt.a', which still does not exist.
That's not what the error message says. -lboost_unit_test_framework-mt needs to come after ./.libs/libUnitMain.a.
I assume ' boost::unit_test::framework::master_test_suite' is in that library. The boost documentation I looked at indicates I ought to see libraries ending in '-mt' if the library supports multithreading.
What else ought I try?
In Christ, Steven Watanabe
participants (2)
-
Steven Watanabe
-
Ted Byers