[pgrouting-dev] Problems linking on mingw64 between boost, cgal and threads
sanak
geosanak at gmail.com
Wed Mar 20 17:11:59 PDT 2013
Hi Stephen,
Thanks for your improvement.
I will check it tonight.
Regards,
2013/3/21 Stephen Woodbridge <woodbri at swoodbridge.com>
> Hi sanak,
>
> I figured out a nice trick for scripting the bjam.exe bootstrap. You can
> change your instructions like this:
>
>
> Boost
> ------------------------------**------------------------------**-
> Use old version(1.46.1) because of boost/graph/detail/is_same.hpp issue
>
> $ cd /c/build
> $ wget http://sourceforge.net/**projects/boost/files/boost/1.**
> 46.1/boost_1_46_1.zip<http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.zip>
> $ unzip boost_1_46_1.zip
> $ cd boost_1_46_1/tools/build/v2
> $ # the following will run the bootstrap.bat in cmd.exe and exit
> $ cmd //c bootstrap.bat gcc
> $ cp bjam.exe /c/build/boost_1_46_1/
> $ cd /c/build/boost_1_46_1
> $ bjam toolset=gcc address-model=32 define=BOOST_USE_WINDOWS_H
> link=static threading=multi --with-thread --prefix=/usr/local install
>
> * Above bjam build instruction is quoted from the following site.
> [Unable to build Boost libraries with GCC - Stack Overflow]
>
> http://stackoverflow.com/**questions/5299468/unable-to-**
> build-boost-libraries-with-gcc<http://stackoverflow.com/questions/5299468/unable-to-build-boost-libraries-with-gcc>
>
>
> Also for gaul I created a gaul.path file so instead of having the used
> edit the includes I run:
>
> $ ./configure --enable-slang=no --enable-pthread=no --enable-shared=yes
> $ cat /c/build/gaul.patch | patch -p1
>
> My patch file is:
>
> $ cat /c/build/gaul.patch
> --- gaul-devel-0.1849-0/util/gaul/**gaul_config.h 2005-04-20 12:09:49
> -0400
> +++ gaul-devel-0.1849-0a/util/**gaul/gaul_config.h 2013-03-11 13:47:33
> -0400
>
> @@ -53,9 +53,9 @@
>
> #ifdef WIN32
> # ifdef BUILDING_DLL
> -# define FUNCPROTO __declspec (dllexport)
> +# define FUNCPROTO
> # else
> -# define FUNCPROTO __declspec (dllimport)
> +# define FUNCPROTO
> # endif
> #else
> # define FUNCPROTO
>
> --- gaul-devel-0.1849-0/util/gaul/**gaul_config_win.h 2005-04-14
> 11:08:56 -0400
> +++ gaul-devel-0.1849-0a/util/**gaul/gaul_config_win.h 2013-03-11
> 13:48:12 -0400
> @@ -39,9 +39,9 @@
> ****************************************************************
> **********/
>
> #ifdef BUILDING_DLL
> -# define FUNCPROTO __declspec (dllexport)
> +# define FUNCPROTO
> #else
> -# define FUNCPROTO __declspec (dllimport)
> +# define FUNCPROTO
> #endif
>
> # if defined __CYGWIN32__ && !defined __CYGWIN__
> ---
>
> You might want to add these to your process.
>
> Thanks,
> -Steve
>
>
> On 3/13/2013 10:44 AM, sanak wrote:
>
>> Hi Stephen,
>>
>> I have updated the MinGW32/64 build instruction,
>> so, could you retry from boost build?
>> (Sorry, gcc PATH settings is not necessary, because msys.bat path
>> settings seems to be inherited by command prompt.)
>> https://github.com/sanak/**pgrouting4w/commit/**
>> e5ae697b3cb545b002702eda62c290**9382ae4521<https://github.com/sanak/pgrouting4w/commit/e5ae697b3cb545b002702eda62c2909382ae4521>
>> Regards,
>>
>> 2013/3/13 sanak <geosanak at gmail.com <mailto:geosanak at gmail.com>>
>>
>>
>> Hi Stephen,
>> Oops, sorry, my boost_1_46_1/tools/build/bjam.**log shows "msvc10"
>> which I have installed...
>>
>> I will check after returning from work. (about 12 hour later)
>> Regards,
>> 2013/3/13 Stephen Woodbridge <woodbri at swoodbridge.com
>> <mailto:woodbri at swoodbridge.**com <woodbri at swoodbridge.com>>>
>>
>>
>> OK, it looks like I have solved ISSUE 2, I think this was caused
>> because I built boost with the 32 bit model in the 64 bit
>> environment. I still can not not get ISSUE 1 to resolve and I
>> had to rebuild it using the bjam I built under 1_51.
>>
>> To fix ISSUE to:
>>
>> 1. rebuilt boost_1_46_1 as 64 bit model using bjam from 1_51
>> 2. rebuild CGAL
>> 3. rebuild pgrouting
>>
>> So I have at least on cuild of pgRouting
>>
>> So making progress in small steps :)
>>
>> If you have any additional thoughts on getting boost to build
>> they would be appreciated.
>>
>> In my msys.bat shell, I have:
>>
>> PATH=/c/ming64/mingw64/bin/:/_**_home/woodbri/bin:.:/usr/**
>> local/__bin:/mingw/bin:/bin:/**c/oracle/__product/10.2.0/db_**
>> 1/bin:/c/__Windows/system32:/**c/Windows:/__c/Windows/**
>> System32/Wbem:/c/__Windows/**System32/__WindowsPowerShell/**
>> v1.0/:/c/__Program
>> Files (x86)/QuickTime/QTSystem/
>>
>> Thanks,
>> -Steve
>>
>>
>> On 3/12/2013 11:34 AM, Stephen Woodbridge wrote:
>>
>> Hi Sanak,
>>
>> I'm still have an issue with this. Hopefully I followed your
>> changes
>> correctly:
>>
>> In my msys.bat shell I added the to the path:
>> /c/ming64/mingw64/bin/, I
>> have /c/ming64/ and /c/ming32/ trees setup so I can build on
>> either.
>>
>> start cmd
>> gcc -v # is found and run
>> bootstrap.bat gcc # fails
>> bootstrap.bat mingw # fails
>>
>> exit
>>
>> $ cat tools/build/bjam.log
>> ###
>> ### Using 'msvc' toolset.
>> ###
>>
>> c:\ming64\projects\boost_1_46_**
>> __1\tools\build\v2\engine\src>**if
>>
>> exist
>> bootstrap rd /S /Q bootstrap
>>
>> c:\ming64\projects\boost_1_46_**
>> __1\tools\build\v2\engine\src>**md
>> bootstrap
>>
>> c:\ming64\projects\boost_1_46_**
>> __1\tools\build\v2\engine\src>**cl
>>
>> /nologo /GZ
>> /Zi /MLd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG
>> kernel32.lib
>> advapi32.lib user32.lib /Febootstrap\jam0 command.c
>> compile.c debug.c
>> execnt.c expand.c filent.c glob.c hash.c hdrmacro.c
>> headers.c jam.c
>> jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c
>> output.c
>> parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c
>> timestamp.c
>> variable.c modules.c strings.c filesys.c builtins.c md5.c
>> pwd.c class.c
>> w32_getreg.c native.c modules/set.c modules/path.c
>> modules/regex.c
>> modules/property-set.c modules/sequence.c modules/order.c
>>
>> I looked at tools/build/v2/engine/src/__**build.bat but I'm
>>
>> not very
>> familiar with windows bat files.
>>
>> -Steve
>>
>> On 3/12/2013 9:15 AM, sanak wrote:
>>
>> Hi Stephen,
>> I updated MinGW32/64 build instruction to my "mingw"
>> branch,
>> and checked that MinGW64-bit build successed. (but not
>> tested)
>> https://github.com/sanak/__**pgrouting4w/commit/__**
>> 2a660524b53bcd80005e52917af5b3**__2b31749559<https://github.com/sanak/__pgrouting4w/commit/__2a660524b53bcd80005e52917af5b3__2b31749559>
>>
>> <https://github.com/sanak/**pgrouting4w/commit/**
>> 2a660524b53bcd80005e52917af5b3**2b31749559<https://github.com/sanak/pgrouting4w/commit/2a660524b53bcd80005e52917af5b32b31749559>
>> >
>>
>> so, retry from boost build about ISSUE1. (Thanks Pieter!)
>> Regards,
>> 2013/3/12 Stephen Woodbridge <woodbri at swoodbridge.com
>> <mailto:woodbri at swoodbridge.**com<woodbri at swoodbridge.com>
>> >
>> <mailto:woodbri at swoodbridge.__**com
>>
>> <mailto:woodbri at swoodbridge.**com<woodbri at swoodbridge.com>
>> >>>
>>
>> Hi all,
>>
>> I'm stuck at the moment trying to link the
>> pgrouting driving
>> directions module using mingw 64 bit. See the
>> issues below. So if
>> anyone has any thoughts on this it would be
>> appreciated. I will
>> check the current state of the files into my branch
>> in the morning
>> here (GMT-5) if you are setup to reproduce this. It
>> is too late to
>> do it with a clear head tonight. I'll also move it
>> back to Linux and
>> try again there as I have changed a lot of files.
>>
>> Thanks,
>> -Steve
>>
>> I have followed Sanak's directions from:
>> https://github.com/sanak/____**
>> pgrouting4w/blob/master/BUILD.**____mingw64<https://github.com/sanak/____pgrouting4w/blob/master/BUILD.____mingw64>
>> <https://github.com/sanak/__**
>> pgrouting4w/blob/master/BUILD.**__mingw64<https://github.com/sanak/__pgrouting4w/blob/master/BUILD.__mingw64>
>> >
>>
>>
>> <https://github.com/sanak/__**
>> pgrouting4w/blob/master/BUILD.**__mingw64<https://github.com/sanak/__pgrouting4w/blob/master/BUILD.__mingw64>
>> <https://github.com/sanak/**
>> pgrouting4w/blob/master/BUILD.**mingw64<https://github.com/sanak/pgrouting4w/blob/master/BUILD.mingw64>
>> >>
>>
>> ISSUE 1:
>>
>> I first installed boost_1_51.zip but ran into
>> problems compiling so
>> installed boost_1_46_1.zip as he suggested. I was
>> able to bootstrap
>> 1_51 and get a bjam.exe without a problem. But I
>> could not get
>> 1_46_1 to bootstrap :(
>>
>> Microsoft Windows [Version 6.1.7601]
>> Copyright (c) 2009 Microsoft Corporation. All
>> rights reserved.
>>
>> c:\ming64\projects\boost_1_46_**____1>bootstrap.bat
>> mingw
>>
>> Building Boost.Jam build engine
>> 'cl' is not recognized as an internal or external
>> command,
>> operable program or batch file.
>>
>> Failed to build Boost.Jam build engine.
>> Please consult bjam.log for furter diagnostics.
>>
>> You can try to obtain a prebuilt binary from
>>
>>
>> http://sf.net/project/____**
>> showfiles.php?group_id=7586&__**__package_id=72941<http://sf.net/project/____showfiles.php?group_id=7586&____package_id=72941>
>> <http://sf.net/project/__**showfiles.php?group_id=7586&__
>> **package_id=72941<http://sf.net/project/__showfiles.php?group_id=7586&__package_id=72941>
>> >
>>
>>
>> <http://sf.net/project/__**showfiles.php?group_id=7586&__
>> **package_id=72941<http://sf.net/project/__showfiles.php?group_id=7586&__package_id=72941>
>> <http://sf.net/project/**showfiles.php?group_id=7586&**
>> package_id=72941<http://sf.net/project/showfiles.php?group_id=7586&package_id=72941>
>> >>
>>
>> Also, you can file an issue at http://svn.boost.org
>> Please attach bjam.log in that case.
>>
>> c:\ming64\projects\boost_1_46_**____1>
>>
>>
>> So I built 1_46_1 using the bjam.exe that I built
>> in 1_51 and it
>> seems to have worked ok, but maybe that is part of
>> the problem.
>>
>> ISSUE 2:
>>
>> Is the follow mess from the linker
>>
>> Scanning dependencies of target routing_dd
>> [ 80%] Building C object
>>
>> core/driving_distance/src/____**
>> CMakeFiles/routing_dd.dir/____**alpha.c.obj
>> [ 86%] Building CXX object
>>
>> core/driving_distance/src/____**
>> CMakeFiles/routing_dd.dir/____**alpha_drivedist.cpp.obj
>>
>> In file included from
>>
>> c:/ming64/projects/pgx64/pg92/**
>> ____include/postgresql/server/**__pg___config_os.h:37:0,
>>
>> from
>>
>> c:/ming64/projects/pgx64/pg92/**
>> ____include/postgresql/server/**c.__h:__87,
>> from
>>
>> c:/ming64/projects/pgx64/pg92/**
>> ____include/postgresql/server/**____postgres.h:47,
>>
>> from
>>
>> c:/ming64/projects/pgrouting/_**
>> ___core/driving_distance/src/_**___alpha.h:27,
>> from
>>
>> c:/ming64/projects/pgrouting/_**
>> ___core/driving_distance/src/_**___alpha_drivedist.cpp:46:
>>
>>
>> c:\ming64\mingw64\bin\../lib/_**
>> ___gcc/x86_64-w64-mingw32/4.5.**4/__.__./../../../x86_64-w64-_**
>> _mingw32/__include/winsock2.h:**__13:2:
>>
>>
>> warning: #warning Please include winsock2.h before
>> windows.h
>> [ 93%] Building CXX object
>>
>> core/driving_distance/src/____**
>> CMakeFiles/routing_dd.dir/____**boost_drivedist.cpp.obj
>>
>> [100%] Building C object
>>
>> core/driving_distance/src/____**
>> CMakeFiles/routing_dd.dir/____**drivedist.c.obj
>> Linking CXX shared library
>> ../../../lib/librouting_dd.dll
>> Creating library file:
>> ../../../lib/librouting_dd.___**_dll.a
>>
>> c:/ming64/msys/local/lib/____**
>> libboost_thread-mgw45-mt-1_46_**____1.a(thread.o):
>> duplicate section
>>
>> `.data$_ZTVN5boost16exception_**
>> ____detail10clone_implINS0____**_19error_info_injectorISt9bad_**
>> ____allocEEEE[vtable
>>
>> for
>>
>> boost::exception_detail::____**
>> clone_impl<boost::exception___**__detail::error_info_injector<**
>> ____std::bad_alloc>
>>
>> >]' has different size
>>
>> c:/ming64/msys/local/lib/____**
>> libCGAL.a(all_files.cpp.obj):_**___all_files.cpp:(.text+**0xf898):
>>
>> undefined reference to
>> `boost::system::generic_____**category()'
>>
>> c:/ming64/msys/local/lib/____**
>> libCGAL.a(all_files.cpp.obj):_**___all_files.cpp:(.text+**0xf8a4):
>>
>> undefined reference to
>> `boost::system::generic_____**category()'
>>
>> c:/ming64/msys/local/lib/____**
>> libCGAL.a(all_files.cpp.obj):_**___all_files.cpp:(.text+**0xf8b0):
>>
>> undefined reference to
>> `boost::system::system_____**category()'
>>
>> collect2: ld returned 1 exit status
>> make[2]: *** [lib/librouting_dd.dll] Error 1
>> make[1]: ***
>>
>> [core/driving_distance/src/___**
>> _CMakeFiles/routing_dd.dir/**all]
>>
>> Error 2
>> make: *** [all] Error 2
>> ______________________________**
>> _____________________
>>
>> pgrouting-dev mailing list
>> pgrouting-dev at lists.osgeo.org
>> <mailto:pgrouting-dev at lists.**osgeo.org<pgrouting-dev at lists.osgeo.org>
>> >
>> <mailto:pgrouting-dev at lists.__**osgeo.org<http://osgeo.org>
>> <mailto:pgrouting-dev at lists.**osgeo.org<pgrouting-dev at lists.osgeo.org>
>> >>
>> http://lists.osgeo.org/____**
>> mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev><
>> http://lists.osgeo.org/__**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>> **>
>>
>> <http://lists.osgeo.org/__**
>> mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>> <http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>> **>__>
>>
>>
>>
>>
>> ______________________________**___________________
>> pgrouting-dev mailing list
>> pgrouting-dev at lists.osgeo.org
>> <mailto:pgrouting-dev at lists.**osgeo.org<pgrouting-dev at lists.osgeo.org>
>> >
>> http://lists.osgeo.org/__**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>> <http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>> **>
>>
>>
>> ______________________________**___________________
>> pgrouting-dev mailing list
>> pgrouting-dev at lists.osgeo.org
>> <mailto:pgrouting-dev at lists.**osgeo.org<pgrouting-dev at lists.osgeo.org>
>> >
>> http://lists.osgeo.org/__**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>> <http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>> **>
>>
>>
>> ______________________________**___________________
>> pgrouting-dev mailing list
>> pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.**
>> osgeo.org <pgrouting-dev at lists.osgeo.org>>
>> http://lists.osgeo.org/__**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>> <http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>> **>
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> pgrouting-dev mailing list
>> pgrouting-dev at lists.osgeo.org
>> http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>>
>>
> ______________________________**_________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/**mailman/listinfo/pgrouting-dev<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-dev/attachments/20130321/1523ba22/attachment-0001.html>
More information about the pgrouting-dev
mailing list