efficient / libcuckoo

A high-performance, concurrent hash table
Other
1.61k stars 275 forks source link

Windows Build ? #62

Closed necromancersecret closed 6 years ago

necromancersecret commented 7 years ago

Has any one compiled the latest lib-cuckoo on windows? If yes, please do share the steps ?

Johnson

necromancersecret commented 7 years ago

Any help ?

Johnson

necromancersecret commented 7 years ago

I prev used this one to compile on windows "https://github.com/LitingLin/libcuckoo-windows".. As i require latest changes , please any help in compiling on windows, please do help.

Johnson

manugoyal commented 7 years ago

Hey, sorry I've personally never compiled libcuckoo on windows, and I'm not really familiar enough with the windows environment to know what other steps are necessary to get it compiling. Seems like some people are integrating it into their visual studio projects, but I'm not sure about the specifics.

necromancersecret commented 7 years ago

@manugoyal , i saw some people were talking about vs build , hence i asked if anyone who had successfully compiled the latest libcuckoo on windows, it would be of great help

@davidalbertonogueira , any help

Johnson

davidalbertonogueira commented 7 years ago

Hi @necromancersecret , If you are looking for a Windows Microsoft Visual Studio solution, you can use my fork: https://github.com/davidalbertonogueira/libcuckoo

This was a fork made around August last year, mainly just porting some linux-specific code and adding MVS projects. If you do need libcucuckoo most recent changes, I may check the new differences and considering merging them. Tell me if you need anything.

necromancersecret commented 7 years ago

Dear @davidalbertonogueira You came as a lifeguard, please do help me in building the latest libcuckoo for visual studio. I am stuck :(

Johnson

davidalbertonogueira commented 7 years ago

I am looking into that. Too much has changed between these two branches. It will probably not be feasible for me to do it in the next days. @necromancersecret , are you sure you need that "bleeding-edge" version? I've been using my fork in production without problems. @manugoyal , is there any new feature since August or any significant performance improvement in those 150 commits?

manugoyal commented 7 years ago

There is no significant performance improvement in the latest version, mostly API enhancements. The old version is still tagged as v0.1, so feel free to pull that tag.

necromancersecret commented 7 years ago

@davidalbertonogueira , my bad I was down with fever for few days, did not get the chance to look. But I will give it a shot.

@manugoyal , please let me know does upsert thing will work in david's version ?

Johnson

manugoyal commented 7 years ago

Yes, upsert works in the old version too.

DJuego commented 7 years ago

Hi, @manugoyal , @davidalbertonogueira ! I have the same problem of @necromancersecret . I need the new features of libcuckoo in Windows.

Precisely I opened the issue https://github.com/efficient/libcuckoo/issues/32. (https://github.com/efficient/libcuckoo/issues/33 related to this problem. Apparently, this issue was resolved recently.

When i try to build with the current version of libcukoo (https://github.com/efficient/libcuckoo) in Visual Studio 2015, I get:

1>  main.cpp
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(898): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(903): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::Bucket' being compiled
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2391): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(899): error C2975: '_Bits': invalid template argument for 'std::bitset', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\bitset(20): note: see declaration of '_Bits'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(902): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2061: syntax error: identifier 'key_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2382): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2061: syntax error: identifier 'mapped_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2061: syntax error: identifier 'size_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2061: syntax error: identifier 'difference_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2061: syntax error: identifier 'hasher'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2061: syntax error: identifier 'key_equal'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2061: syntax error: identifier 'allocator_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2061: syntax error: identifier 'pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2061: syntax error: identifier 'difference_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1978): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::const_iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2061: syntax error: identifier 'pointer'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2041): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\city_hasher.hh(6): fatal error C1083: Cannot open include file: 'city.h': No such file or directory
1>  Principal.cpp
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(898): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(903): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::Bucket' being compiled
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2391): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(899): error C2975: '_Bits': invalid template argument for 'std::bitset', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\bitset(20): note: see declaration of '_Bits'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(902): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2061: syntax error: identifier 'key_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2382): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2061: syntax error: identifier 'mapped_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2061: syntax error: identifier 'size_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2061: syntax error: identifier 'difference_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2061: syntax error: identifier 'hasher'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2061: syntax error: identifier 'key_equal'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2061: syntax error: identifier 'allocator_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2061: syntax error: identifier 'pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2061: syntax error: identifier 'difference_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1978): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::const_iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2061: syntax error: identifier 'pointer'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2041): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\city_hasher.hh(6): fatal error C1083: Cannot open include file: 'city.h': No such file or directory
1>  ManagerNetwork_netlink.cpp
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(898): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(903): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::Bucket' being compiled
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2391): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(899): error C2975: '_Bits': invalid template argument for 'std::bitset', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\bitset(20): note: see declaration of '_Bits'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(902): error C2975: '_Size': invalid template argument for 'std::array', expected compile-time constant expression
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\array(20): note: see declaration of '_Size'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2061: syntax error: identifier 'key_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2382): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1846): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2061: syntax error: identifier 'mapped_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1847): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1848): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2061: syntax error: identifier 'size_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1849): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2061: syntax error: identifier 'difference_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1850): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2061: syntax error: identifier 'hasher'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1851): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2061: syntax error: identifier 'key_equal'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1852): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2061: syntax error: identifier 'allocator_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1853): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1854): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1855): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2061: syntax error: identifier 'pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1856): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1857): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2061: syntax error: identifier 'difference_type'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1978): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::const_iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1866): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2061: syntax error: identifier 'value_type'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1867): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2061: syntax error: identifier 'const_pointer'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1868): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2061: syntax error: identifier 'const_reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1869): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2061: syntax error: identifier 'pointer'
1>  p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(2041): note: see reference to class template instantiation 'cuckoohash_map<Key,T,Hash,Pred,Alloc,SLOT_PER_BUCKET>::locked_table::iterator' being compiled
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1992): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2061: syntax error: identifier 'reference'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\cuckoohash_map.hh(1993): error C2238: unexpected token(s) preceding ';'
1>p:\mis-proyectos\ciberlandia2017\wifibot\inc\libcuckoo\libcuckoo\city_hasher.hh(6): fatal error C1083: Cannot open include file: 'city.h': No such file or directory

Unfortunately the libcuckoo forks in windows are not updated (https://github.com/davidalbertonogueira/libcuckoo and https://github.com/LitingLin/libcuckoo-windows). :-(

Any help? Thank you!

DJuego

mdimura commented 7 years ago

I successfully build libcuckoo for windows using mingw-w64. I use Arch cross-build toolkit, but probably it will work using mingw-w64 for windows also. I even made a mingw-w64-libcuckoo-git AUR package, which I use to build my software.

DJuego commented 7 years ago

Thank you, @Burning-Daylight. Good to know.

I work with MinGW-Builds too... Perhaps, i will try it in the future. Unfortunately my current project is in Visual Studio 2015/2017. :-/

It is a pity that libcuckoo does not support oficially MSVC (the last MSVC at least). Nowdays, g++, clang++ and MSVC are the best compilers for C++. And , MSVC is the best compiler choice on Windows for targeting Windows, regardless of what editor or IDE you choose to use (IMHO).

For me, it is the main weakness of libcuckoo. :-(

Anyway, thank you for libcuckoo. :-)

DJuego

DJuego commented 7 years ago

Thank you for your interest and your hint! I could test it, However there are a pull request https://github.com/efficient/libcuckoo/pull/86

I have my hopes in this fix...

DJuego

On Fri, Sep 22, 2017 at 9:35 PM, Jesper Meyer notifications@github.com wrote:

You will need to add typename before all type references from another class like: using key_type = cuckoohash_map::key_type; -> using key_type = typename cuckoohash_map::key_type;

Other then that it should be fine. Builds fine on /std:c++latest c++17.3

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/efficient/libcuckoo/issues/62#issuecomment-331554188, or mute the thread https://github.com/notifications/unsubscribe-auth/AB3ZdDvGYaff09CF0vz7T7sbO18hH1OQks5slBotgaJpZM4MMAU6 .

DJuego commented 7 years ago

Hi! Sorry for my very delayed feedback!

I have tested the last master commit where it is announced a fix for windows build (thank you for the efforts, guys!).

Unfortunately there are problems with Visual Studio 2017 x64.

I use:

cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBUILD_EXAMPLES=1 -DBUILD_TESTS=1 ../..

I get:


p:\Compilados\x32-x64\TRABAJO_MSVC2017_x64\libcuckoo\build\debug>nmake

Microsoft (R) Program Maintenance Utility Version 14.11.25508.2
Copyright (C) Microsoft Corporation.  All rights reserved.

[  5%] Built target nested_table
[ 11%] Built target blob_blob_table
[ 17%] Built target hellohash
[ 22%] Built target count_freq
[ 28%] Built target int_str_table
[ 34%] Built target c_hash
[ 40%] Built target int_int_table
[ 42%] Building CXX object tests/unit-tests/CMakeFiles/unit_tests.dir/test_locked_table.cc.obj
test_locked_table.cc
P:\Compilados\x32-x64\TRABAJO_MSVC2017_x64\libcuckoo\libcuckoo/cuckoohash_map.hh(2445): error C2248: 'cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>::spinlock': cannot access private class declared in class 'cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>'
P:\Compilados\x32-x64\TRABAJO_MSVC2017_x64\libcuckoo\libcuckoo/cuckoohash_map.hh(758): note: see declaration of 'cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>::spinlock'
p:\compilados\x32-x64\trabajo_msvc2017_x64\libcuckoo\tests\unit-tests\unit_test_util.hh(76): note: see declaration of 'cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>'
P:\Compilados\x32-x64\TRABAJO_MSVC2017_x64\libcuckoo\libcuckoo/cuckoohash_map.hh(2440): note: while compiling class template member function 'std::istream &operator >>(std::istream &,cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>::locked_table &)'
P:\Compilados\x32-x64\TRABAJO_MSVC2017_x64\libcuckoo\tests\unit-tests\test_locked_table.cc(14): note: see reference to class template instantiation 'cuckoohash_map<int,int,std::hash<int>,std::equal_to<int>,std::allocator<std::pair<const int,int>>,4>::locked_table' being compiled
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~4\2017\ENTERP~1\VC\Tools\MSVC\1411~1.255\bin\Hostx64\x64\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.

HOWEVER, there are good news because if it is disabled the tests the build is succesfully.

cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=1 ../..

<- It works!

Thank you for this!!

DJuego

d36u9 commented 6 years ago

those tests and samples build failures have been fixed in pull request #88

DJuego commented 6 years ago

Thanks @d36u9! I am keen in this, and i will wait for merging!

DJuego

Thank you very much for the docs updating! 👍 👍

manugoyal commented 6 years ago

Just merged a commit inspired by #88 which should fix the compile errors on MSVC. Windows builds should work now!