jsford / nanoplan

nanoplan is a header-only C++11 library for search-based robot planning.
MIT License
15 stars 3 forks source link

Building in Windows ( Cannot open include file: 'unistd.h') #3

Open DJuego opened 3 years ago

DJuego commented 3 years ago

Hi! In my humble opinion, it would be really interesting to offer a multiplatform solution of nanoplan. :-D I am working in Windows 10 x64/Visual Studio 2019. I'm trying to build the demo. However, the unistd.h file is not standard in Windows.

DJuego

Build started...
1>------ Skipped Build: Project: Continuous, Configuration: Release x64 ------
1>Project not selected to build for this solution configuration 
2>------ Skipped Build: Project: Experimental, Configuration: Release x64 ------
2>Project not selected to build for this solution configuration 
3>------ Skipped Build: Project: Nightly, Configuration: Release x64 ------
3>Project not selected to build for this solution configuration 
4>------ Skipped Build: Project: NightlyMemoryCheck, Configuration: Release x64 ------
4>Project not selected to build for this solution configuration 
5>------ Build started: Project: demo_nanoplan, Configuration: Release x64 ------
5>demo.cpp
5>P:\Compilados\x32-x64\TRABAJO_MSVC2019_x64\nanoplan\include\nanoplan\cost.h(18,31): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
5>P:\Compilados\x32-x64\TRABAJO_MSVC2019_x64\nanoplan\include\nanoplan\cost.h(19,30): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
5>P:\Compilados\x32-x64\TRABAJO_MSVC2019_x64\nanoplan\include\nanoplan\cost.h(55,15): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
5>P:\Compilados\x32-x64\TRABAJO_MSVC2019_x64\nanoplan\demo\demo.cpp(4,10): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
5>Done building project "demo_nanoplan.vcxproj" -- FAILED.
6>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
6>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 1 failed, 5 up-to-date, 5 skipped ==========
jsford commented 3 years ago

Hi DJuego! I appreciate your interest in my work.

I've gotten bogged down working on my PhD thesis lately. I'll see what I can do to help you out.

jsford commented 3 years ago

The latest commit uses std::this_thread::sleep_for instead of usleep for cross-platform portability.

DJuego commented 3 years ago

@jsford Thank you very much for your reply and your fixing! :-)

I understand perfectly what you mean by your situation with your PhD Thesis. :disappointed_relieved: Could I ask you what your topic is? :relaxed:

I have tested the master with last commit. Unfortunately, building cannot yet be completed...

DJuego

Build started...
1>------ Skipped Build: Project: Continuous, Configuration: Release x64 ------
1>Project not selected to build for this solution configuration 
2>------ Skipped Build: Project: Experimental, Configuration: Release x64 ------
2>Project not selected to build for this solution configuration 
3>------ Skipped Build: Project: Nightly, Configuration: Release x64 ------
3>Project not selected to build for this solution configuration 
4>------ Skipped Build: Project: NightlyMemoryCheck, Configuration: Release x64 ------
4>Project not selected to build for this solution configuration 
5>------ Build started: Project: demo_nanoplan, Configuration: Release x64 ------
5>demo.cpp
5>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(18,31): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
5>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(19,30): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
5>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(55,15): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,20): warning C4003: not enough arguments for function-like macro invocation 'max'
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(96,28): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(99,57): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(102,50): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(105,48): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(108,49): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,20): error C2589: '(': illegal token on right side of '::'
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61): error C2062: type 'unknown-type' unexpected
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,1): error C2059: syntax error: ')'
5>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(205,3): error C3861: 'showcursor': identifier not found
5>Done building project "demo_nanoplan.vcxproj" -- FAILED.
6>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
6>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 1 failed, 5 up-to-date, 5 skipped ==========
jsford commented 3 years ago

Hi DJuego,

I'm at Carnegie Mellon working on planning and photogrammetry algorithms for autonomous lunar rovers. What are you working on?

Sadly, I don't have a good way to test on Windows right now. I think the code I am using to manipulate the terminal to render the demo is not cross-platform. In the meantime, the library code should work just fine without the demo.

DJuego commented 3 years ago

Hi again, @jsford!

Thank you for your updating! It is not yet possible to run the demo but the construction is significantly better. Thanks!! I attach a full updated compilation log with warnings and errors,

Autonomous lunar rovers? Impressive!! Good luck with that! In comparison my PHD is much more boring. It was on machine vision: An industrial OCR. But that was years ago... I have now been recruited to contribute to a research project on indoor positioning. However, at the moment my interest in nanoplan is just for fun. :-)

DJuego

2021-02-21_102243

Rebuild started...
1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Release x64 ------
1>Checking Build System
2>------ Rebuild All started: Project: fmt, Configuration: Release x64 ------
3>------ Rebuild All started: Project: Catch2WithMain, Configuration: Release x64 ------
4>------ Rebuild All started: Project: test_nanoplan, Configuration: Release x64 ------
5>------ Skipped Rebuild All: Project: Continuous, Configuration: Release x64 ------
5>Project not selected to build for this solution configuration 
6>------ Skipped Rebuild All: Project: Experimental, Configuration: Release x64 ------
6>Project not selected to build for this solution configuration 
7>------ Skipped Rebuild All: Project: Nightly, Configuration: Release x64 ------
7>Project not selected to build for this solution configuration 
8>------ Skipped Rebuild All: Project: NightlyMemoryCheck, Configuration: Release x64 ------
8>Project not selected to build for this solution configuration 
2>Building Custom Rule P:/Compilados/x32-x64/nanoplan/build/_deps/fmt-src/CMakeLists.txt
2>format.cc
3>Building Custom Rule P:/Compilados/x32-x64/nanoplan/build/_deps/catch2-src/CMakeLists.txt
4>Building Custom Rule P:/Compilados/x32-x64/nanoplan/test/CMakeLists.txt
3>catch_with_main.cpp
4>test_main.cpp
2>os.cc
2>Generating Code...
4>test_queues.cpp
2>fmt.vcxproj -> P:\Compilados\x32-x64\nanoplan\build\_deps\fmt-build\Release\fmt.lib
9>------ Rebuild All started: Project: demo_nanoplan, Configuration: Release x64 ------
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(18,31): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(19,30): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(55,15): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(110,1): warning C4267: '=': conversion from 'size_t' to 'V', possible loss of data
4>        with
4>        [
4>            V=unsigned long
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(107): message : while compiling class template member function 'void nanoplan::PriorityQueueWithRemove<std::string,double,std::less<PRIORITY>>::insert(const VALUE &,const PRIORITY &)'
4>        with
4>        [
4>            PRIORITY=double,
4>            VALUE=std::string
4>        ]
4>P:\Compilados\x32-x64\nanoplan\test\test_queues.cpp(33): message : see reference to function template instantiation 'void nanoplan::PriorityQueueWithRemove<std::string,double,std::less<PRIORITY>>::insert(const VALUE &,const PRIORITY &)' being compiled
4>        with
4>        [
4>            PRIORITY=double,
4>            VALUE=std::string
4>        ]
4>P:\Compilados\x32-x64\nanoplan\test\test_queues.cpp(32): message : see reference to class template instantiation 'nanoplan::PriorityQueueWithRemove<std::string,double,std::less<PRIORITY>>' being compiled
4>        with
4>        [
4>            PRIORITY=double
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(111,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(95,1): warning C4267: '=': conversion from 'size_t' to 'V', possible loss of data
4>        with
4>        [
4>            V=unsigned long
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(78): message : while compiling class template member function 'void nanoplan::PriorityQueueWithRemove<std::string,double,std::less<PRIORITY>>::remove(const VALUE &)'
4>        with
4>        [
4>            PRIORITY=double,
4>            VALUE=std::string
4>        ]
4>P:\Compilados\x32-x64\nanoplan\test\test_queues.cpp(50): message : see reference to function template instantiation 'void nanoplan::PriorityQueueWithRemove<std::string,double,std::less<PRIORITY>>::remove(const VALUE &)' being compiled
4>        with
4>        [
4>            PRIORITY=double,
4>            VALUE=std::string
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(100,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(102,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>test_planners.cpp
9>Building Custom Rule P:/Compilados/x32-x64/nanoplan/demo/CMakeLists.txt
9>demo.cpp
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(18,31): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(19,30): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(55,15): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
9>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(18,31): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
9>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(19,30): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
9>P:\Compilados\x32-x64\nanoplan\include\nanoplan\cost.h(55,15): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\hash.h(52,1): warning C4267: 'argument': conversion from 'size_t' to 'const uint32_t', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\test\test_planners.cpp(12): message : see reference to function template instantiation 'void nanoplan::hash_combine<int,int>(size_t &,const T &,int)' being compiled
4>        with
4>        [
4>            T=int
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\planner.h(136,66): warning C4244: 'return': conversion from '_Rep' to 'double', possible loss of data
4>        with
4>        [
4>            _Rep=__int64
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\planner.h(133): message : while compiling class template member function 'double nanoplan::Planner<SPACE>::check_timer(void) const'
4>        with
4>        [
4>            SPACE=Space2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\dijkstra.h(86): message : see reference to function template instantiation 'double nanoplan::Planner<SPACE>::check_timer(void) const' being compiled
4>        with
4>        [
4>            SPACE=Space2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\dijkstra.h(41): message : while compiling class template member function 'nanoplan::Dijkstra<Space2D>::Dijkstra(std::shared_ptr<Space2D>)'
4>P:\Compilados\x32-x64\nanoplan\test\test_planners.cpp(36): message : see reference to function template instantiation 'nanoplan::Dijkstra<Space2D>::Dijkstra(std::shared_ptr<Space2D>)' being compiled
4>P:\Compilados\x32-x64\nanoplan\test\test_planners.cpp(36): message : see reference to class template instantiation 'nanoplan::Dijkstra<Space2D>' being compiled
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(110,1): warning C4267: '=': conversion from 'size_t' to 'V', possible loss of data
4>        with
4>        [
4>            V=unsigned long
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(107): message : while compiling class template member function 'void nanoplan::PriorityQueueWithRemove<State2D,nanoplan::LPAStar<Space2D>::Key,std::less<PRIORITY>>::insert(const VALUE &,const PRIORITY &)'
4>        with
4>        [
4>            PRIORITY=nanoplan::LPAStar<Space2D>::Key,
4>            VALUE=State2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\lpastar.h(141): message : see reference to function template instantiation 'void nanoplan::PriorityQueueWithRemove<State2D,nanoplan::LPAStar<Space2D>::Key,std::less<PRIORITY>>::insert(const VALUE &,const PRIORITY &)' being compiled
4>        with
4>        [
4>            PRIORITY=nanoplan::LPAStar<Space2D>::Key,
4>            VALUE=State2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\lpastar.h(58): message : see reference to class template instantiation 'nanoplan::PriorityQueueWithRemove<State2D,nanoplan::LPAStar<Space2D>::Key,std::less<PRIORITY>>' being compiled
4>        with
4>        [
4>            PRIORITY=nanoplan::LPAStar<Space2D>::Key
4>        ]
4>P:\Compilados\x32-x64\nanoplan\test\test_planners.cpp(50): message : see reference to class template instantiation 'nanoplan::LPAStar<Space2D>' being compiled
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(111,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(95,1): warning C4267: '=': conversion from 'size_t' to 'V', possible loss of data
4>        with
4>        [
4>            V=unsigned long
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(78): message : while compiling class template member function 'void nanoplan::PriorityQueueWithRemove<State2D,nanoplan::LPAStar<Space2D>::Key,std::less<PRIORITY>>::remove(const VALUE &)'
4>        with
4>        [
4>            PRIORITY=nanoplan::LPAStar<Space2D>::Key,
4>            VALUE=State2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\lpastar.h(208): message : see reference to function template instantiation 'void nanoplan::PriorityQueueWithRemove<State2D,nanoplan::LPAStar<Space2D>::Key,std::less<PRIORITY>>::remove(const VALUE &)' being compiled
4>        with
4>        [
4>            PRIORITY=nanoplan::LPAStar<Space2D>::Key,
4>            VALUE=State2D
4>        ]
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(100,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>P:\Compilados\x32-x64\nanoplan\include\nanoplan\priority_queue.h(102,1): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data
4>Generating Code...
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,20): warning C4003: not enough arguments for function-like macro invocation 'max'
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(96,28): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(99,57): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(102,50): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(105,48): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(108,49): warning C4566: character represented by universal-character-name '\u2588' cannot be represented in the current code page (1252)
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,20): error C2589: '(': illegal token on right side of '::'
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61): error C2062: type 'unknown-type' unexpected
9>P:\Compilados\x32-x64\nanoplan\demo\demo.cpp(61,1): error C2059: syntax error: ')'
9>Done building project "demo_nanoplan.vcxproj" -- FAILED.
3>Catch2WithMain.vcxproj -> P:\Compilados\x32-x64\nanoplan\build\_deps\catch2-build\Release\Catch2WithMain.lib
4>test_nanoplan.vcxproj -> P:\Compilados\x32-x64\nanoplan\build\test\Release\test_nanoplan.exe
4>Done building project "test_nanoplan.vcxproj".
10>------ Rebuild All started: Project: ALL_BUILD, Configuration: Release x64 ------
10>Building Custom Rule P:/Compilados/x32-x64/nanoplan/CMakeLists.txt
11>------ Skipped Rebuild All: Project: INSTALL, Configuration: Release x64 ------
11>Project not selected to build for this solution configuration 
========== Rebuild All: 5 succeeded, 1 failed, 5 skipped ==========