but0n / recastcli.js Goto Github PK
View Code? Open in Web Editor NEWCLI tool & Node.js addon to generate navigation mesh
License: MIT License
CLI tool & Node.js addon to generate navigation mesh
License: MIT License
I'm finding that for many scenes, there's a big difference in performance between this package and creating the navmesh in Blender (which also uses Recast). For example, here's a moderately complex model:
Running Node.js locally, it's taking ~30 seconds to build the navmesh. But in Blender, the navmesh is built almost instantly, well under 1 second. Any idea what that would be? I've tried making sure all of the build options match in that comparison, thinking maybe a setting like maxEdgeError
was the problem, but I think it's all the same.
➜ recastCLI.js git:(master) ✗ make
===> Building recast.a:
make[1]: Entering directory '/home/but0n/git/recastCLI.js/recast'
CC RecastAlloc.o
CC RecastMeshDetail.o
CC RecastRasterization.o
CC RecastLayers.o
CC RecastFilter.o
CC RecastMesh.o
CC RecastContour.o
CC RecastAssert.o
CC RecastRegion.o
CC Recast.o
CC RecastArea.o
AR all
make[1]: Leaving directory '/home/but0n/git/recastCLI.js/recast'
===> Building main.a:
make[1]: Entering directory '/home/but0n/git/recastCLI.js/main'
CC ChunkyTriMesh.o
CC InputGeom.o
CC MeshLoaderObj.o
CC build.o
CC main.o
AR all
make[1]: Leaving directory '/home/but0n/git/recastCLI.js/main'
Done
CC all
main/main.a(build.o): In function `build(char const*, float, float, float, float, float, int, int, int, int, float, int, int, int)':
build.cpp:(.text+0x1f2): undefined reference to `std::allocator<char>::allocator()'
build.cpp:(.text+0x20f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
build.cpp:(.text+0x23d): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
build.cpp:(.text+0x24c): undefined reference to `std::allocator<char>::~allocator()'
build.cpp:(.text+0x278): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x34f): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x3a6): undefined reference to `ceilf'
build.cpp:(.text+0x3c9): undefined reference to `ceilf'
build.cpp:(.text+0x3ec): undefined reference to `floorf'
build.cpp:(.text+0x513): undefined reference to `rcCalcGridSize(float const*, float const*, float, int*, int*)'
build.cpp:(.text+0x53b): undefined reference to `rcAllocHeightfield()'
build.cpp:(.text+0x56c): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x5c3): undefined reference to `rcCreateHeightfield(rcContext*, rcHeightfield&, int, int, float const*, float const*, float, float)'
build.cpp:(.text+0x5e8): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x602): undefined reference to `operator new[](unsigned long)'
build.cpp:(.text+0x63b): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x6a1): undefined reference to `rcMarkWalkableTriangles(rcContext*, float, float const*, int, int const*, int, unsigned char*)'
build.cpp:(.text+0x6e0): undefined reference to `rcRasterizeTriangles(rcContext*, float const*, int, int const*, unsigned char const*, int, rcHeightfield&, int)'
build.cpp:(.text+0x709): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x73c): undefined reference to `operator delete[](void*)'
build.cpp:(.text+0x770): undefined reference to `rcFilterLowHangingWalkableObstacles(rcContext*, int, rcHeightfield&)'
build.cpp:(.text+0x79d): undefined reference to `rcFilterLedgeSpans(rcContext*, int, int, rcHeightfield&)'
build.cpp:(.text+0x7c6): undefined reference to `rcFilterWalkableLowHeightSpans(rcContext*, int, rcHeightfield&)'
build.cpp:(.text+0x7cb): undefined reference to `rcAllocCompactHeightfield()'
build.cpp:(.text+0x7fc): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x832): undefined reference to `rcBuildCompactHeightfield(rcContext*, int, int, rcHeightfield&, rcCompactHeightfield&)'
build.cpp:(.text+0x857): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0x87e): undefined reference to `rcFreeHeightField(rcHeightfield*)'
build.cpp:(.text+0x8a7): undefined reference to `rcErodeWalkableArea(rcContext*, int, rcCompactHeightfield&)'
build.cpp:(.text+0x8cc): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xa04): undefined reference to `rcMarkConvexPolyArea(rcContext*, float const*, int, float, float, unsigned char, rcCompactHeightfield&)'
build.cpp:(.text+0xa37): undefined reference to `rcBuildDistanceField(rcContext*, rcCompactHeightfield&)'
build.cpp:(.text+0xa5c): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xa92): undefined reference to `rcBuildRegions(rcContext*, rcCompactHeightfield&, int, int, int)'
build.cpp:(.text+0xabb): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xafc): undefined reference to `rcBuildRegionsMonotone(rcContext*, rcCompactHeightfield&, int, int, int)'
build.cpp:(.text+0xb21): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xb4e): undefined reference to `rcBuildLayerRegions(rcContext*, rcCompactHeightfield&, int, int)'
build.cpp:(.text+0xb73): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xb82): undefined reference to `rcAllocContourSet()'
build.cpp:(.text+0xbb3): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xbfa): undefined reference to `rcBuildContours(rcContext*, rcCompactHeightfield&, float, int, rcContourSet&, int)'
build.cpp:(.text+0xc1f): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xc2e): undefined reference to `rcAllocPolyMesh()'
build.cpp:(.text+0xc5f): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xc8c): undefined reference to `rcBuildPolyMesh(rcContext*, rcContourSet&, int, rcPolyMesh&)'
build.cpp:(.text+0xcb1): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xcc0): undefined reference to `rcAllocPolyMeshDetail()'
build.cpp:(.text+0xcf1): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xd3e): undefined reference to `rcBuildPolyMeshDetail(rcContext*, rcPolyMesh const&, rcCompactHeightfield const&, float, float, rcPolyMeshDetail&)'
build.cpp:(.text+0xd63): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
build.cpp:(.text+0xd8a): undefined reference to `rcFreeCompactHeightfield(rcCompactHeightfield*)'
build.cpp:(.text+0xda4): undefined reference to `rcFreeContourSet(rcContourSet*)'
build.cpp:(.text+0x101c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
build.cpp:(.text+0x1030): undefined reference to `std::allocator<char>::~allocator()'
main/main.a(build.o): In function `__static_initialization_and_destruction_0(int, int)':
build.cpp:(.text+0x1070): undefined reference to `operator new(unsigned long)'
build.cpp:(.text+0x1091): undefined reference to `operator new(unsigned long)'
build.cpp:(.text+0x10b0): undefined reference to `operator delete(void*)'
main/main.a(build.o): In function `rcContext::~rcContext()':
build.cpp:(.text._ZN9rcContextD2Ev[_ZN9rcContextD5Ev]+0x29): undefined reference to `operator delete(void*)'
main/main.a(build.o): In function `rcContext::~rcContext()':
build.cpp:(.text._ZN9rcContextD0Ev[_ZN9rcContextD5Ev]+0x20): undefined reference to `operator delete(void*)'
main/main.a(build.o):(.rodata._ZTI9rcContext[_ZTI9rcContext]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
main/main.a(build.o):(.eh_frame+0x2cb): undefined reference to `__gxx_personality_v0'
main/main.a(InputGeom.o): In function `InputGeom::~InputGeom()':
InputGeom.cpp:(.text+0x363): undefined reference to `operator delete(void*)'
InputGeom.cpp:(.text+0x380): undefined reference to `operator delete(void*)'
main/main.a(InputGeom.o): In function `InputGeom::loadMesh(rcContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
InputGeom.cpp:(.text+0x3ca): undefined reference to `operator delete(void*)'
InputGeom.cpp:(.text+0x3f2): undefined reference to `operator delete(void*)'
InputGeom.cpp:(.text+0x424): undefined reference to `operator new(unsigned long)'
InputGeom.cpp:(.text+0x45f): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
InputGeom.cpp:(.text+0x493): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
InputGeom.cpp:(.text+0x4b4): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
InputGeom.cpp:(.text+0x502): undefined reference to `rcCalcBounds(float const*, int, float*, float*)'
InputGeom.cpp:(.text+0x50c): undefined reference to `operator new(unsigned long)'
InputGeom.cpp:(.text+0x545): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
InputGeom.cpp:(.text+0x5c4): undefined reference to `rcContext::log(rcLogCategory, char const*, ...)'
InputGeom.cpp:(.text+0x5dd): undefined reference to `operator delete(void*)'
main/main.a(InputGeom.o): In function `InputGeom::loadGeomSet(rcContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
InputGeom.cpp:(.text+0x646): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
InputGeom.cpp:(.text+0x72c): undefined reference to `operator new[](unsigned long)'
InputGeom.cpp:(.text+0x7b4): undefined reference to `operator delete[](void*)'
InputGeom.cpp:(.text+0x800): undefined reference to `operator delete(void*)'
InputGeom.cpp:(.text+0x8ed): undefined reference to `std::allocator<char>::allocator()'
InputGeom.cpp:(.text+0x90d): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
InputGeom.cpp:(.text+0x941): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0x950): undefined reference to `std::allocator<char>::~allocator()'
InputGeom.cpp:(.text+0x971): undefined reference to `operator delete[](void*)'
InputGeom.cpp:(.text+0xea9): undefined reference to `operator delete[](void*)'
InputGeom.cpp:(.text+0xed1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0xee5): undefined reference to `std::allocator<char>::~allocator()'
main/main.a(InputGeom.o): In function `InputGeom::load(rcContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
InputGeom.cpp:(.text+0xf42): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_of(char, unsigned long) const'
InputGeom.cpp:(.text+0xf72): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const'
InputGeom.cpp:(.text+0xf7e): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()'
InputGeom.cpp:(.text+0xf8d): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()'
InputGeom.cpp:(.text+0xf9c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()'
InputGeom.cpp:(.text+0x1020): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0x1042): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
main/main.a(InputGeom.o): In function `InputGeom::saveGeomSet(BuildSettings const*)':
InputGeom.cpp:(.text+0x10c4): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
InputGeom.cpp:(.text+0x10dc): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_of(char, unsigned long) const'
InputGeom.cpp:(.text+0x1103): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const'
InputGeom.cpp:(.text+0x1116): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
InputGeom.cpp:(.text+0x1122): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0x1133): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)'
InputGeom.cpp:(.text+0x113f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
InputGeom.cpp:(.text+0x117c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
InputGeom.cpp:(.text+0x16a8): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0x16ca): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
InputGeom.cpp:(.text+0x16db): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
main/main.a(InputGeom.o): In function `rcChunkyTriMesh::~rcChunkyTriMesh()':
InputGeom.cpp:(.text._ZN15rcChunkyTriMeshD2Ev[_ZN15rcChunkyTriMeshD5Ev]+0x23): undefined reference to `operator delete[](void*)'
InputGeom.cpp:(.text._ZN15rcChunkyTriMeshD2Ev[_ZN15rcChunkyTriMeshD5Ev]+0x40): undefined reference to `operator delete[](void*)'
main/main.a(InputGeom.o): In function `bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)':
InputGeom.cpp:(.text._ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_[_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_]+0x1f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
main/main.a(InputGeom.o):(.eh_frame+0x20f): undefined reference to `__gxx_personality_v0'
main/main.a(MeshLoaderObj.o): In function `rcMeshLoaderObj::rcMeshLoaderObj()':
MeshLoaderObj.cpp:(.text+0x14): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()'
main/main.a(MeshLoaderObj.o): In function `rcMeshLoaderObj::~rcMeshLoaderObj()':
MeshLoaderObj.cpp:(.text+0x8b): undefined reference to `operator delete[](void*)'
MeshLoaderObj.cpp:(.text+0xa8): undefined reference to `operator delete[](void*)'
MeshLoaderObj.cpp:(.text+0xc5): undefined reference to `operator delete[](void*)'
MeshLoaderObj.cpp:(.text+0xd1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
main/main.a(MeshLoaderObj.o): In function `rcMeshLoaderObj::addVertex(float, float, float, int&)':
MeshLoaderObj.cpp:(.text+0x154): undefined reference to `operator new[](unsigned long)'
MeshLoaderObj.cpp:(.text+0x16a): undefined reference to `__cxa_throw_bad_array_new_length'
MeshLoaderObj.cpp:(.text+0x1b5): undefined reference to `operator delete[](void*)'
main/main.a(MeshLoaderObj.o): In function `rcMeshLoaderObj::addTriangle(int, int, int, int&)':
MeshLoaderObj.cpp:(.text+0x2d0): undefined reference to `operator new[](unsigned long)'
MeshLoaderObj.cpp:(.text+0x2e6): undefined reference to `__cxa_throw_bad_array_new_length'
MeshLoaderObj.cpp:(.text+0x331): undefined reference to `operator delete[](void*)'
main/main.a(MeshLoaderObj.o): In function `rcMeshLoaderObj::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
MeshLoaderObj.cpp:(.text+0x5ce): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
MeshLoaderObj.cpp:(.text+0x6b4): undefined reference to `operator new[](unsigned long)'
MeshLoaderObj.cpp:(.text+0x73c): undefined reference to `operator delete[](void*)'
MeshLoaderObj.cpp:(.text+0x9b5): undefined reference to `operator delete[](void*)'
MeshLoaderObj.cpp:(.text+0x9e2): undefined reference to `operator new[](unsigned long)'
MeshLoaderObj.cpp:(.text+0xa01): undefined reference to `__cxa_throw_bad_array_new_length'
MeshLoaderObj.cpp:(.text+0xcea): undefined reference to `sqrtf'
MeshLoaderObj.cpp:(.text+0xdb0): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
main/main.a(ChunkyTriMesh.o): In function `rcCreateChunkyTriMesh(float const*, int const*, int, int, rcChunkyTriMesh*)':
ChunkyTriMesh.cpp:(.text+0x5c6): undefined reference to `operator new[](unsigned long)'
ChunkyTriMesh.cpp:(.text+0x5e3): undefined reference to `__cxa_throw_bad_array_new_length'
ChunkyTriMesh.cpp:(.text+0x613): undefined reference to `operator new[](unsigned long)'
ChunkyTriMesh.cpp:(.text+0x632): undefined reference to `__cxa_throw_bad_array_new_length'
ChunkyTriMesh.cpp:(.text+0x671): undefined reference to `operator new[](unsigned long)'
ChunkyTriMesh.cpp:(.text+0x683): undefined reference to `__cxa_throw_bad_array_new_length'
ChunkyTriMesh.cpp:(.text+0x8dc): undefined reference to `operator delete[](void*)'
collect2: error: ld returned 1 exit status
makefile:3: recipe for target 'all' failed
make: *** [all] Error 1
➜ recastCLI.js git:(master) ✗
Hi! I'm trying to get this working on my machine and having some trouble:
> make
===> Building recast.a:
CC ChunkyTriMesh.o
CC InputGeom.o
CC MeshLoaderObj.o
CC Recast.o
CC RecastAlloc.o
CC RecastArea.o
CC RecastAssert.o
CC RecastContour.o
CC RecastFilter.o
CC RecastLayers.o
CC RecastMesh.o
CC RecastMeshDetail.o
CC RecastRasterization.o
CC RecastRegion.o
AR all
===> Building main.a:
CC build.o
CC main.o
main.cpp:49:5: error: no matching function for call to 'build'
build(c_filename, c_cellSize, c_cellHeight, c_agentHeight, c_agentRadius, c_agentMaxClimp, c_agentMaxSlope, c_regionMinSize, c_regionMergeSize...
^~~~~
./build.h:69:14: note: candidate function not viable: requires 13 arguments, but 14 were provided
extern char *build( float cellSize, float cellHeight, float agentHeight, float agentRadius, float agentMaxClimp, float agentMaxSlope, float regionM...
^
1 error generated.
make[1]: *** [main.o] Error 1
make: *** [main] Error 2
But node-gyp rebuild
did work, so I have a workaround for now. :)
Node: v6.9.5
MacOS: 10.13.4
Thanks!
Node.js v8.9.3 文档
Node.js调用C/C++
使用 C++ 扩展 Node.js by Kenneth Geisshirt Mar 17 2016
First thing is I cannot find /usr/include/node/node.h. Which I fix by adding this line to makefile:
CPPFLAGS+=-I/usr/include/node/
make[1]: Leaving directory '/home/mimooh/recastCLI.js-nodejs/recast'
===> Building main.a:
make[1]: Entering directory '/home/mimooh/recastCLI.js-nodejs/main'
CC build.o
CC port.o
port.cpp:3:18: fatal error: node.h: No such file or directory
compilation terminated.
: recipe for target 'port.o' failed
make[1]: *** [port.o] Error 1
make[1]: Leaving directory '/home/mimooh/recastCLI.js-nodejs/main'
makefile:13: recipe for target 'main' failed
make: *** [main] Error 2
Second thing is I get this compile error:
recastCLI.js-nodejs$ make
===> Building recast.a:
make[1]: Entering directory '/home/mimooh/recastCLI.js-nodejs/recast'
CC RecastAlloc.o
CC RecastMeshDetail.o
CC RecastRasterization.o
CC RecastLayers.o
CC RecastFilter.o
CC RecastMesh.o
CC ChunkyTriMesh.o
CC InputGeom.o
CC RecastContour.o
CC MeshLoaderObj.o
CC RecastAssert.o
CC RecastRegion.o
CC Recast.o
CC RecastArea.o
AR all
make[1]: Leaving directory '/home/mimooh/recastCLI.js-nodejs/recast'
===> Building main.a:
make[1]: Entering directory '/home/mimooh/recastCLI.js-nodejs/main'
CC build.o
CC port.o
CC main.o
main.cpp: In function 'int main(int, const char**)':
main.cpp:49:236: error: cannot convert 'const char*' to 'float' for argument '1' to 'char* build(float, float, float, float, float, float, float, float, float, float, float, float, float)'
_agentMaxClimp, c_agentMaxSlope, c_regionMinSize, c_regionMergeSize, c_edgeMaxLen, c_edgeMaxError, c_vertsPerPoly, c_detailSampleDist, c_detailSampleMaxErro);
^
: recipe for target 'main.o' failed
make[1]: *** [main.o] Error 1
make[1]: Leaving directory '/home/mimooh/recastCLI.js-nodejs/main'
makefile:13: recipe for target 'main' failed
make: *** [main] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.