Hi there,
Right now, we use the x32 library for yices, i.e., those of use who are working on a X64 architecture will not be able to compile the thing :(
Those working on a X64 architecture (as me) will get a "skipping incompatible" error from their linker. I did some effort to improve this.
A quick hack to support X64 is now:
what i changed in the codebase:
- i checked in the X64 lib for yices in our SVN under /src/yices1.0.28_X64
- the X32 version remains in the same place and under the same name /src/yices1.0.28
what you have to change to make it work under X64:
- under Properties, Settings, GCC C++ Linker -> Libraries you make sure u set the Library search path to "${workspace_loc:/${ProjName}/src/yices-1.0.28_X64/lib}"
- then you go in the source code under /Group3/Yiceshandler.h and change
#include "../yices-1.0.28/include/yices_c.h"
#include "../yices-1.0.28/include/yicesl_c.h"
to
#include "../yices-1.0.28_X64/include/yices_c.h"
#include "../yices-1.0.28_X64/include/yicesl_c.h"
Then it should compile on your X64 architecture. For ppl using X32 machines, everything remains the same.
Important:
Im not a big C++ guru, if someone knows a more elegant solution to this, pls. let me know. Maybe the there is a way to make an include depending on one's architecture:
like:
#IFMYMACHINEISX32THEN
#include "../yices-1.0.28/include/yices_c.h"
#include "../yices-1.0.28/include/yicesl_c.h"
#include "../yices-1.0.28_X64/include/yices_c.h"
#include "../yices-1.0.28_X64/include/yicesl_c.h"
#END
cheers,
Thomas