Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== install par SFE ====== <code> nemo-henry% pkgchk -v SFEboost NOTE: Couldn't lock the package database. /usr/lib /usr/lib/libboost_date_time-mt.so /usr/lib/libboost_date_time-mt.so.1.34.1 /usr/lib/libboost_date_time.so /usr/lib/libboost_date_time.so.1.34.1 /usr/lib/libboost_filesystem-mt.so /usr/lib/libboost_filesystem-mt.so.1.34.1 /usr/lib/libboost_filesystem.so /usr/lib/libboost_filesystem.so.1.34.1 /usr/lib/libboost_graph-mt.so /usr/lib/libboost_graph-mt.so.1.34.1 /usr/lib/libboost_graph.so /usr/lib/libboost_graph.so.1.34.1 /usr/lib/libboost_iostreams-mt.so /usr/lib/libboost_iostreams-mt.so.1.34.1 /usr/lib/libboost_iostreams.so /usr/lib/libboost_iostreams.so.1.34.1 /usr/lib/libboost_prg_exec_monitor-mt.so /usr/lib/libboost_prg_exec_monitor-mt.so.1.34.1 /usr/lib/libboost_prg_exec_monitor.so /usr/lib/libboost_prg_exec_monitor.so.1.34.1 /usr/lib/libboost_program_options-mt.so /usr/lib/libboost_program_options-mt.so.1.34.1 /usr/lib/libboost_program_options.so /usr/lib/libboost_program_options.so.1.34.1 /usr/lib/libboost_python-mt.so /usr/lib/libboost_python-mt.so.1.34.1 /usr/lib/libboost_python.so /usr/lib/libboost_python.so.1.34.1 /usr/lib/libboost_regex-mt.so /usr/lib/libboost_regex-mt.so.1.34.1 /usr/lib/libboost_regex.so /usr/lib/libboost_regex.so.1.34.1 /usr/lib/libboost_serialization-mt.so /usr/lib/libboost_serialization-mt.so.1.34.1 /usr/lib/libboost_serialization.so /usr/lib/libboost_serialization.so.1.34.1 /usr/lib/libboost_signals-mt.so /usr/lib/libboost_signals-mt.so.1.34.1 /usr/lib/libboost_signals.so /usr/lib/libboost_signals.so.1.34.1 /usr/lib/libboost_thread-mt.so /usr/lib/libboost_thread-mt.so.1.34.1 /usr/lib/libboost_unit_test_framework-mt.so /usr/lib/libboost_unit_test_framework-mt.so.1.34.1 /usr/lib/libboost_unit_test_framework.so /usr/lib/libboost_unit_test_framework.so.1.34.1 /usr/lib/libboost_wave-mt.so /usr/lib/libboost_wave-mt.so.1.34.1 /usr/lib/libboost_wave.so /usr/lib/libboost_wave.so.1.34.1 /usr/lib/libboost_wserialization-mt.so /usr/lib/libboost_wserialization-mt.so.1.34.1 /usr/lib/libboost_wserialization.so /usr/lib/libboost_wserialization.so.1.34.1 </code> ====== Compilation ====== ===== Sun Studio 12 ===== archive boost_1_34_1 dans /local/apps/src \\ en s'inspirant de cette [[http://blogs.sun.com/sga/entry/boost_mini_howto|page]]: <code> > module load ss12 > setenv PATH ${PATH}:/usr/ccs/bin (à cause de ld) > setenv BOOST_JAM_TOOLSET_ROOT /opt/studio12/SUNWspro/ > cd tools/jam/src/ > ./build.sh sunpro | & tee BUILD.LOG </code> Pas sur qu'il faille faire la ligne suivante?: <code> ln -s bin.solaris bin # to run regression tests later </code> Pour avoir bjam dans le PATH: <code> > setenv PATH /local/apps/src/boost_1_34_1/tools/jam/src/bin.solaris:${PATH} > bjam -sTOOLS=sunpro -j2 -d2 stage|& tee BJAM.LOG Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (don't panic: this is a strictly optional feature). ### ### No toolset specified. Please use --toolset option. ### ### Known toolsets are: acc, borland, cc, como, darwin, gcc, gcc-nocygwin, intel-linux, intel-win32, kcc, kylix, metrowerks, mingw, mipspro, msvc, qcc, sunpro, tru64cxx, vacpp, vc7, vc8, vmsdecc ### </code> il y a donc des options qui ont changées... [[http://blogs.sun.com/sga/entry/how_to_build_boost_1|voir]] <code> bjam --toolset=sun stdlib=sun-stlport -j2 -d2 stage | & tee BJAM.LOG </code> environ 2 heures de compil! ===== Tests ===== avec l'[[http://www.boost.org/doc/libs/1_34_1/more/getting_started/unix-variants.html#get-boost|exemple]] donné sur le site de boost: <code> nemo-henry% CC -I /local/apps/src/boost_1_34_1 example2.cpp -o example2 -library=stlport4 -R /local/apps/src/boost_1_34_1/stage/lib -L /local/apps/src/boost_1_34_1/stage/lib -lboost_regex-sw-mt-d </code> :!: Ne pas oublier **-library=stlport4** puis: <code> nemo-henry% ldd example2 libboost_regex-sw-mt-d-1_34_1.so.1.34.1 => /local/apps/src/boost_1_34_1/stage/lib/libboost_regex-sw-mt-d-1_34_1.so.1.34.1 libstlport.so.1 => /opt/studio12/SUNWspro/lib/stlport4/libstlport.so.1 librt.so.1 => /lib/librt.so.1 libCrun.so.1 => /usr/lib/libCrun.so.1 libm.so.2 => /lib/libm.so.2 libc.so.1 => /lib/libc.so.1 libm.so.1 => /lib/libm.so.1 libaio.so.1 => /lib/libaio.so.1 libmd.so.1 => /lib/libmd.so.1 nemo-henry% ./example2 < jayne.txt Will Success Spoil Rock Hunter? </code> ===== Gcc ===== * il faut python > 2.3, donc mettre /usr/bin avant /usr/sfw/bin dans le PATH * il faut utiliser le linker gnu et pas celui de Sun [[http://forum.java.sun.com/thread.jspa?threadID=5274977&messageID=10290697|boost install with python]] et [[http://www.pion.org/files/pion-net/common/doc/README.solaris|Building Boost with ASIO:]] <code> > pwd /local/apps/src/gnu/boost_1_34_1 > setenv PATH /usr/bin:/usr/sfw/bin:/opt/csw/gnu:/usr/local/wrapper/bin:. > ./configure --prefix=/local/apps/gnu/32/boost_1_34_1 > vi user-config.jam > make install | & tee INSTALL.LOG </code> Ensuite, on teste l'exemple: <code> nemo-henry% g++ -I/local/apps/gnu/32/boost_1_34_1/include/boost-1_34_1 example2.cpp -g -o example2 /local/apps/gnu/32/boost_1_34_1/lib/libboost_regex-gcc34-mt-d-1_34_1.a nemo-henry% ./example2 < jayne.txt Will Success Spoil Rock Hunter? </code> Dans le INSTALL.LOG, on voit que certaines cibles ne sont pas compilées: <code> ...failed updating 176 targets... ...skipped 32 targets... ...updated 5600 targets... Not all Boost libraries built properly. </code> par exemple: <code> gcc.compile.c++ bin.v2/libs/python/build/gcc-3.4.3/debug/threading-multi/numeric .o In file included from ./boost/python/object/make_instance.hpp:9, from ./boost/python/object/make_ptr_instance.hpp:8, from ./boost/python/to_python_indirect.hpp:11, from ./boost/python/converter/arg_to_python.hpp:10, from ./boost/python/call.hpp:15, from ./boost/python/object_core.hpp:12, from ./boost/python/object.hpp:9, from ./boost/python/tuple.hpp:10, from ./boost/python/numeric.hpp:10, from libs/python/src/numeric.cpp:6: ./boost/python/object/instance.hpp:44: error: a casts to a type other than an integral or enumeration type cannot appear in a constant-expression ./boost/python/object/instance.hpp:44: error: '->' cannot appear in a constant-expression ./boost/python/object/instance.hpp:44: error: `&' cannot appear in a constant-expression </code> FIXME le problème vient de python, ou de la version du compilateur? ====== boost 1_35_0 ====== <code> > setenv PATH /opt/csw/gcc4/bin:/opt/csw/gnu:/usr/local/wrapper/bin:/usr/bin:. > ./configure --prefix=/local/apps/gnu/32/boost_1_35_0 -n Building Boost.Jam with toolset gcc... tools/jam/src/bin.solarisx86/bjam -n Detecting Python version... 2.5 -n Detecting Python root... /opt/csw -n Unicode/ICU support for Boost.Regex?... /usr Backing up existing Boost.Build configuration in user-config.jam.2 Generating Boost.Build configuration in user-config.jam... Generating Makefile... > > make install | & tee INSTALL.LOG ... ...failed updating 35 targets... ...skipped 36 targets... ...updated 5779 targets... Not all Boost libraries built properly. </code> cette fois ci, les erreurs sont de la forme: <code> gcc.link.dll bin.v2/libs/serialization/build/gcc-4.0.2/release/threading-multi/libboost_serialization-gcc40-mt-1_35.so.1.35.0 ld: fatal: relocation error: file: bin.v2/libs/serialization/build/gcc-4.0.2/release/threading-multi/xml_grammar.o section: .rel.eh_frame symbol: .LFB2185: symbol has been discarded with discarded section: .gnu.linkonce.t._ZN5boost6detail15sp_counted_base7destroyEv collect2: ld returned 1 exit status </code> mais comme l'erreur concerne aussi libboost_regex-gcc40-mt-1_35.so.1.35.0, on ne peut pas tester l'exemple! boost.txt Dernière modification : 2017/08/25 09:56de 127.0.0.1