Coder Social home page Coder Social logo

Compiling RaftLib for Windows about raftlib HOT 18 CLOSED

raftlib avatar raftlib commented on May 16, 2024
Compiling RaftLib for Windows

from raftlib.

Comments (18)

jonathan-beard avatar jonathan-beard commented on May 16, 2024

That actually sounds like a good idea. I've had numerous requests for Windows support. I'll start porting sometime this week. I had another good suggestion to break the dependencies up into "packages" so that things like GNU GSL (needed for the random number generation kernels) won't be needed to get the basic system working (right now the Makefile blindly adds -lgsl regardless).

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Adding CMAKE support now, Adi had a good suggestion about setting up github modules. Might also make since to do something like checking out using homebrew or ports on OS X.

from raftlib.

kcleung avatar kcleung commented on May 16, 2024

Thanks! so where can I find the CMAKE code? In which branch?

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Not committed yet. I'm working on dividing the system into modules vs. having everything in a single package in addition to CMAKE.....shortly.

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

ok, initial cmake beta added to main repo. tested it on OS X tonight. I've gotta get a new windows build VM to start debugging there. should work (minus the random number generation). I removed the dependency on Scotch for the main branch. The GSL libraries were alway optional. I'll look into alternatives. I would use the C++11 random generators, but seems they are quite a bit slower than the C GSL equivalents (at least last I checked, perhaps they've gotten better).

from raftlib.

kcleung avatar kcleung commented on May 16, 2024

I have just tested your code in Windows 8 with Visual Studio 2013.

First, I ran the cmake gui to configure and generate the visual studio solution.

Then I opened the generated RaftLib.sln, which opens four projects, namely ALL_BUILD, INSTALL, raft and ZERO_CHECK

When I tried to build ALL_BUILD or raft, they both failed with this log:

1>------ Build started: Project: raft, Configuration: Debug Win32 ------
1>cl : Command line warning D9002: ignoring unknown option '-O0'
1>cl : Command line warning D9002: ignoring unknown option '-g3'
1>cl : Command line warning D9002: ignoring unknown option '-std=c++11'
1> allocate.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> map.cpp
1>z:\git\windows\raftlib\common.hpp(23): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> graphtools.cpp
1>Z:\git\windows\RaftLib\graphtools.cpp(26): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
1> port.cpp
1>Z:\git\windows\RaftLib\port.cpp(27): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> portexception.cpp
1>z:\git\windows\raftlib\portexception.hpp(28): error C3646: 'noexcept' : unknown override specifier
1>Z:\git\windows\RaftLib\portexception.cpp(29): error C3646: 'noexcept' : unknown override specifier
1> schedule.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> simpleschedule.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> stdalloc.cpp
1>z:\git\windows\raftlib\kernelkeeper.tcc(26): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
1> portiterator.cpp
1>Z:\git\windows\RaftLib\portiterator.cpp(24): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
1> dynalloc.cpp
1>z:\git\windows\raftlib\kernelkeeper.tcc(26): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
1> roundrobin.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> kernel.cpp
1>Z:\git\windows\RaftLib\kernel.cpp(2): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> mapbase.cpp
1>z:\git\windows\raftlib\common.hpp(23): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> submap.cpp
1>z:\git\windows\raftlib\mapbase.hpp(33): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> globalmap.cpp
1>z:\git\windows\raftlib\map.hpp(24): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> systemsignalhandler.cpp
1>z:\git\windows\raftlib\systemsignalhandler.hpp(39): error C3646: 'noexcept' : unknown override specifier
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> poolschedule.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> kernelcontainer.cpp
1>z:\git\windows\raftlib\systemsignalhandler.hpp(39): error C3646: 'noexcept' : unknown override specifier
1>z:\git\windows\raftlib\kernelkeeper.tcc(26): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
1> common.cpp
1>z:\git\windows\raftlib\common.hpp(23): fatal error C1083: Cannot open include file: 'cxxabi.h': No such file or directory
1> basicparallel.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> Generating Code...
1> Compiling...
1> noparallel.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> affinity.cpp
1>Z:\git\windows\RaftLib\affinity.cpp(76): fatal error C1021: invalid preprocessor command 'warning'
1> portmap_t.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> port_info.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> parallelk.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> clockimpl.cpp
1>z:\git\windows\raftlib\fifo\SystemClock.tcc(29): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
1> fifo.cpp
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> pointer.cpp
1>Z:\git\windows\RaftLib\fifo\pointer.cpp(22): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
1> procwait.cpp
1>z:\git\windows\raftlib\fifo\procwait.hpp(11): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
1> resolution.cpp
1>z:\git\windows\raftlib\fifo\blocked.hpp(51): error C3861: 'aligned': identifier not found
1>z:\git\windows\raftlib\fifo\bufferdata.tcc(29): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> shm.cpp
1>z:\git\windows\raftlib\fifo\shm.hpp(18): error C3646: 'noexcept' : unknown override specifier
1>Z:\git\windows\RaftLib\fifo\shm.cpp(8): fatal error C1083: Cannot open include file: 'sys/mman.h': No such file or directory
1> signal.cpp
1>z:\git\windows\raftlib\fifo\signal.hpp(41): error C3646: 'noexcept' : unknown override specifier
1>Z:\git\windows\RaftLib\fifo\signal.cpp(55): error C3646: 'noexcept' : unknown override specifier
1> systeminfo.cpp
1>Z:\git\windows\RaftLib\fifo\systeminfo.cpp(25): fatal error C1083: Cannot open include file: 'sys/utsname.h': No such file or directory
1> Generating Code...
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

So do I need to specify flags for CMAKE?

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

looks like I'm going to have to do a lot of system specific #defines for non-unix/linux/os x header files to get to work. will fix and re-compile tonight.

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Ok, finally figured out a good path. I'm changing the pthread dep. to std::thread. There are a few complications with this, but I'll deal with them. The cxxabi.h is only used for demangling. It looks like there's a boost package that can manage this in a relatively platform agnostic way. I'll have some time tomorrow to work on so I'll add this in. The utsname file is only used to get system info. I'm still looking for a better way to do this on Windows machines. It might come down to simply not using system info for Windows, or recoding with #defines for native hooks into the OS.

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

ok, looks like now I'm down to "demangle" as the main issue. well, getting the boost lib to work with the cmake and msvc. took a bit longer than I expected, but looks like we're coming down the home stretch.

from raftlib.

kcleung avatar kcleung commented on May 16, 2024

I am currently running windows 7 with Visual Studio 2013.

I have just pulled from the master (1e25e71) from the repository. When I tried to configure through cmake, I have downloaded boost_1_58_0, but it cannot find the boost repository, so it uses the internal one.

Then I went ahead with CMake and generated configuration filed, and then opened RaftLib.sln with VS 2013, right-clicked the project "ALL_BUILD" and clicked build.

Then it shows 1474 errors, with the first one on:

error C3646: 'noexcept': unknown override specifier in signal.hpp line 41 column 1.

Could you please have a look?

Also on cmake, how can I set the parameters on Boost_DIR and Boost_INCLUDE_DIR? Is it correct to set Boost_INCLUDE_DIR to the base directory where I unzip the file?

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Of course

Sent from my iPhone

On Feb 22, 2016, at 5:06 PM, kcleung [email protected] wrote:

I am currently running windows 7 with Visual Studio 2013.

I have just pulled from the master (1e25e71) from the repository. When I tried to configure through cmake, I have downloaded boost_1_58_0, but it cannot find the boost repository, so it uses the internal one.

Then I went ahead with CMake and generated configuration filed, and then opened RaftLib.sln with VS 2013, right-clicked the project "ALL_BUILD" and clicked build.

Then it shows 1474 errors, with the first one on:

error C3646: 'noexcept': unknown override specifier in signal.hpp line 41 column 1.

Could you please have a look?

Also on cmake, how can I set the parameters on Boost_DIR and Boost_INCLUDE_DIR? Is it correct to set Boost_INCLUDE_DIR to the base directory where I unzip the file?


Reply to this email directly or view it on GitHub.

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

I'll have time to check out tonight....it looks like the appropriate C++11 compiler flag isn't getting flipped by CMake. Might have to manually add based on OS. The Boost include locations can be modified by using the CMake hints: https://cmake.org/cmake/help/v3.0/module/FindBoost.html (the third box down) when invoking the CMake generator...

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Ok, still playing with CMake to get the compiler flags correct. Will update shortly.

from raftlib.

kcleung avatar kcleung commented on May 16, 2024

I just tried the git master again (bac9c19). I noticed that (on linux) the system simply checks out the git components of boost.

However when I tried to run cmake 3.5.2 gui on Windows 8, with Visual Studio 2015, and I set the target to VS 2015 and native compiler, it fails with:

CMake Error at CMakeLists.txt:2 (project):
No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:2 (project):
No CMAKE_CXX_COMPILER could be found.

So how can I set these variables?

Actually I run in a VM with Windows guest. Would it be possible if you also install virtualbox and install a Windows VM with visual studio to test the build mechanism?

Thanks!

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Actually, that's exactly what I have set up. I'm running Windows 10 with MS Visual Studio community ed. on a VMWare hosted virtual machine. I'm also assuming you've installed git. The bzip example is set not to build for windows, I'm making the assumption that not that many windows users have the bzip library installed. I have RaftLib compiling at least (not yet passing all regression tests on Win64) using the following commands (and using the visual studio native tools command line):

mkdir build
cd build
cmake ../RaftLib -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug

You can just as easily use Release vs. Debug. To build the library you can run

nmake

To run tests

nmake test

I'll see if I can get cdb up and running tonight. If not it'll likely be next weekend before I have a chance to debug further.

-J

from raftlib.

kcleung avatar kcleung commented on May 16, 2024

I am using Visual Studio 2015 with Windows 8.

I have just updated to commit 201282e. I followed your instructions, and I can go as far as running "nmake". However at 33$ Building CXX object examples/cppalgo/search/CMakeFiles/bmh.dir/bmh.cpp.obj
bmh.cpp
c:\users\abc\git\raftlib./raftinc/units.hpp(37): eror C2440: 'initializing': cannot convert from 'const char [2]' to 'const char'

Can you please have a look?

Thanks!

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Of course. Will be later in the week, but most certainly.

Sent from my tiny screen, powered by ARM awesomeness.

On May 30, 2016, at 22:15, kcleung [email protected] wrote:

I am using Visual Studio 2015 with Windows 8.

I have just updated to commit 201282e. I followed your instructions, and I can go as far as running "nmake". However at 33$ Building CXX object examples/cppalgo/search/CMakeFiles/bmh.dir/bmh.cpp.obj
bmh.cpp
c:\users\abc\git\raftlib./raftinc/units.hpp(37): eror C2440: 'initializing': cannot convert from 'const char [2]' to 'const char'

Can you please have a look?

Thanks!


You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

from raftlib.

jonathan-beard avatar jonathan-beard commented on May 16, 2024

Having a look now, for some odd reason on Windows 10 with VS 2015 I go past that error. I'll see if I can run on my Win7 VM and duplicate. I'll keep debugging tonight, but can you confirm that you're using the latest head? Thanks!

-J

from raftlib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.