[GiNaC-devel] Windows 64 Bit Build

Kemlath Orcslayer kemlath at googlemail.com
Wed Oct 23 09:13:34 CEST 2019


Dear Richard,

There are quite some incompatibilities between data type lengths under UNIX and Windows therefore the standard CLN branch does not work under windows. 
I was able to port the current GiNaC to windows using CLN from "https://github.com/jrheinlaender/ginac”

If you want I have a complete GiNaC + CLN (no gmp no ams) + working example using a CMake based build system.
Its not on git since the GiNaC part is slightly modified and has some extensions for faster serialisation that I use under MPI for broadcasting. 

Let me know if you’re interested

Klaus

> On 22. Oct 2019, at 13:37, Richard Crozier via GiNaC-devel <ginac-devel at ginac.de> wrote:
> 
> Dear list,
> 
> I am trying to cross-compile ginac for windows. To do this I am using M Cross Environment (see www.mxe.cc for more info) to cross-compile ginac from windows. MXE automatically creates a cross-compilation environment for you that integrates with autotools, cmak or normal makefiles.
> 
> Using MXE I successfully built the CLN library from the w64 branch of this git repository:
> 
> https://github.com/jrheinlaender/cln/tree/w64
> 
> Now I am trying to build ginac itself, but am getting the following error:
> 
> /bin/bash ../libtool  --tag=CXX   --mode=compile x86_64-w64-mingw32.static-g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I../config -DLIBEXECDIR='"/opt/mxe/usr/x86_64-w64-mingw32.static/libexec/"' -std=c++11 -MT libginac_la-fderivative.lo -MD -MP -MF .deps/libginac_la-fderivative.Tpo -c -o libginac_la-fderivative.lo `test -f 'fderivative.cpp' || echo './'`fderivative.cpp
> libtool: compile:  x86_64-w64-mingw32.static-g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I../config -DLIBEXECDIR=\"/opt/mxe/usr/x86_64-w64-mingw32.static/libexec/\" -std=c++11 -MT libginac_la-fderivative.lo -MD -MP -MF .deps/libginac_la-fderivative.Tpo -c fderivative.cpp  -DDLL_EXPORT -DPIC -o .libs/libginac_la-fderivative.o
> factor.cpp: In function 'GiNaC::ex GiNaC::{anonymous}::factor_multivariate(const GiNaC::ex&, const exset&)':
> factor.cpp:2254:56: error: conversion from 'long long unsigned int' to 'GiNaC::numeric' is ambiguous
>  numeric modulus = (vnlst.nops() > 3) ? vnlst.nops() : 3;
>                                                        ^
> In file included from factor.cpp:58:0:
> numeric.h:94:2: note: candidate: GiNaC::numeric::numeric(double)
>  numeric(double d);
>  ^
> numeric.h:92:2: note: candidate: GiNaC::numeric::numeric(long unsigned int)
>  numeric(unsigned long i);
>  ^
> numeric.h:91:2: note: candidate: GiNaC::numeric::numeric(long int)
>  numeric(long i);
>  ^
> numeric.h:90:2: note: candidate: GiNaC::numeric::numeric(unsigned int)
>  numeric(unsigned int i);
>  ^
> numeric.h:89:2: note: candidate: GiNaC::numeric::numeric(int)
>  numeric(int i);
>  ^
> 
> This is from the master barnch of the git repository, but I get the same error using the latest release.
> 
> Is there likely to be an easy fix, or is my quest in vain?
> 
> If you are interested at all, I built CLN using MXE like this:
> 
> autoreconf -iv
> ./configure --host=x86_64-w64-mingw32.static CXXFLAGS="$CXXFLAGS -std=c++11" --prefix=/opt/mxe/usr/x86_64-w64-mingw32.static
> make -j3
> make install
> 
> However, I should mention that I also manually removed the subdirectories tests, examples, doc and benchmarks from the Makefile.am and configure.ac before building.
> 
> I then tried to build ginac the exact same way:
> 
> autoreconf -i
> ./configure --host=x86_64-w64-mingw32.static CXXFLAGS="$CXXFLAGS -std=c++11" --prefix=/opt/mxe/usr/x86_64-w64-mingw32.static
> make -j3
> make install
> 
> 
> Regards,
> 
> Richard
> 
> 
> 
> 
> _______________________________________________
> GiNaC-devel mailing list
> GiNaC-devel at ginac.de
> https://www.cebix.net/mailman/listinfo/ginac-devel



More information about the GiNaC-devel mailing list