From: Paul O. <new...@ki...> - 2009-03-30 08:35:06
|
Boost (at least in rpm-based systems) does not provide any .pc file for pkg-config infrastructure, also there's no script like boost-config provided. Cmake finds boost using its own FindBoost.cmake module, wich, entirely sucks (see what it does on Solaris! however this stupid error was easy to fix). This module is too big to investigate in 5 min. what's the problem with 64-bit archs. If I find more time, I'll see what's wrong with it. Paul On Mon, 30 Mar 2009, gbiggs wrote: > The only place I can think of that that pkg-config file is getting > /usr/lib as a library path from is from the Boost library path. This is > itself found by a CMake module, which gets it from the basename of the > library file(s). This module does not take into account differing 64- > and 32-bit versions of Boost, it just finds the first one it can in the > library search path. > > The solution is probably to set BOOST_ROOT in ccmake to /usr/lib64. This > should allow CMake to find the 64-bit version of Boost first. > > Geoff > > Toby Collett wrote: >> Agree we need to fix it, just need a solution that is compatible with both, >> >> Toby >> >> 2009/3/29 Paul Osmialowski <new...@ki... >> <mailto:new...@ki...>> >> >> This problem touches rpm-based distros: Red Hat Enterprise Linux, >> Scientific Linux and Fedora (at least 9 and 10), quite big part of the >> market... >> >> Paul >> >> On Sun, 29 Mar 2009, Toby Collett wrote: >> >> > which distro is this? >> > Ubuntu (and I guess Debian) use /lib as the 'native' libs and have >> lib32 and >> > lib64 dirs with the specific archs in them... >> > >> > So we need a solution which is compatible with both.. >> > >> > Toby >> > >> > 2009/3/24 Paul Osmialowski <new...@ki... >> <mailto:new...@ki...>> >> > >> >> Hello devels, >> >> Today for a first time I tried to compile client-side program >> written in >> >> C++ on an x86_64 machine (using Player SVN trunk version). It >> couldn't be >> >> done due to pkg-config playerc++.pc file. It says one of >> link-time flags >> >> is -L/usr/lib, which causes proper 64-bit versions of system >> libraries >> >> couldn't be found since all 64-bit libraries in my multilib >> environment >> >> are in /usr/lib64 (while /usr/lib is for 32-bit libraries). Easy >> solution >> >> was to just remove -L/usr/lib flag, which causes all system >> libraries are >> >> found properly. I suspect (but not sure about it) boost detection >> cmake >> >> code caused this unnecessary flag to be added, which is still >> wrong, as >> >> 64-bit boost libraries are also in /usr/lib64. >> >> >> >> Paul > > ------------------------------------------------------------------------------ > _______________________________________________ > Playerstage-developers mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-developers > |