Homebrew / legacy-homebrew

💀 The former home of Homebrew/homebrew (deprecated)
https://brew.sh
26.99k stars 11.36k forks source link

Open-mesh Doesn't Build #24484

Closed msouiai closed 10 years ago

msouiai commented 10 years ago

Hi, i am trying to install open-mesh using

brew install open-mesh

however i encounter the following error message:

[ 66%] Building CXX object src/OpenMesh/Apps/VDProgMesh/Synthesizer/CMakeFiles/Synthesizer.dir///QtViewer/QGLViewerWidget.cc.o /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:244:13: error: use of undeclared identifier 'getopt' while ((c=getopt(argc, argv, "n:o:N:Ih"))!=-1) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:248:26: error: use of undeclared identifier 'optarg' case 'o': ofname = optarg; break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:249:49: error: use of undeclared identifier 'optarg' case 'n': { std::stringstream str; str << optarg; str >> decstep; } break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:251:49: error: use of undeclared identifier 'optarg' std::stringstream str; str << optarg; str >> normalDev; } break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:260:7: error: use of undeclared identifier 'optind' if (optind >= argc) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/mkbalancedpm.cc:263:17: error: use of undeclared identifier 'optind' ifname = argv[optind]; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Decimating/decimater.cc:453:16: error: use of undeclared identifier 'getopt' while ( (c=getopt( argc, argv, "dDhi:M:n:o:v")) != -1 ) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Decimating/decimater.cc:460:39: error: use of undeclared identifier 'optarg' case 'i': ifname = optarg; break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Decimating/decimater.cc:461:39: error: use of undeclared identifier 'optarg' case 'M': opt.parse_argument( optarg ); break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Decimating/decimater.cc:462:50: error: use of undeclared identifier 'optarg' case 'n': opt.n_collapses = float(atof(optarg)); break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Decimating/decimater.cc:463:39: error: use of undeclared identifier 'optarg' case 'o': ofname = optarg; break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/Analyzer/vdpmanalyzer.cc:266:14: error: use of undeclared identifier 'getopt' while ( (c=getopt(argc, argv, "o:"))!=-1 ) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/Analyzer/vdpmanalyzer.cc:271:26: error: use of undeclared identifier 'optarg' case 'o': ofname = optarg; break; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/Analyzer/vdpmanalyzer.cc:277:7: error: use of undeclared identifier 'optind' if (optind >= argc) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/VDProgMesh/Analyzer/vdpmanalyzer.cc:280:17: error: use of undeclared identifier 'optind' ifname = argv[optind]; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:108:14: error: use of undeclared identifier 'getopt' while ( (c=getopt(argc, argv, "tnc:h"))!=-1 ) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:113:10: error: use of undeclared identifier 'optarg' switch(optarg) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:138:12: error: use of undeclared identifier 'optind' if (argc-optind < 3) ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:144:40: error: use of undeclared identifier 'optind' std::stringstream str; str << argv[optind]; str >> iterations; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:149:19: error: use of undeclared identifier 'optind' ifname = argv[++optind]; ^ /tmp/open-mesh-PH75/OpenMesh-2.3/src/OpenMesh/Apps/Smoothing/smooth.cc:153:19: error: use of undeclared identifier 'optind' ofname = argv[++optind]; ^ 4 errors generated. make[2]: ** [src/OpenMesh/Apps/VDProgMesh/Analyzer/CMakeFiles/Analyzer.dir/vdpmanalyzer.cc.o] Error 1 make[1]: * [src/OpenMesh/Apps/VDProgMesh/Analyzer/CMakeFiles/Analyzer.dir/all] Error 2 make[1]: * Waiting for unfinished jobs.... [ 67%] 6 errors generated. Building CXX object src/OpenMesh/Apps/VDProgMesh/Synthesizer/CMakeFiles/Synthesizer.dir/moc_QGLViewerWidget.cpp.o make[2]: * [src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/CMakeFiles/mkbalancedpm.dir/mkbalancedpm.cc.o] Error 1 make[1]: * [src/OpenMesh/Apps/VDProgMesh/mkbalancedpm/CMakeFiles/mkbalancedpm.dir/all] Error 2 5 errors generated. 6 errors generated. make[2]: * [src/OpenMesh/Apps/Decimating/commandlineDecimater/CMakeFiles/commandlineDecimater.dir/__/decimater.cc.o] Error 1 make[1]: * [src/OpenMesh/Apps/Decimating/commandlineDecimater/CMakeFiles/commandlineDecimater.dir/all] Error 2 make[2]: * [src/OpenMesh/Apps/Smoothing/CMakeFiles/Smoothing.dir/smooth.cc.o] Error 1 make[1]: * [src/OpenMesh/Apps/Smoothing/CMakeFiles/Smoothing.dir/all] Error 2 Linking CXX executable Dualizer [ 67%] Built target Dualizer Linking CXX executable Synthesizer [ 67%] Built target Synthesizer make: *\

Brew doctor says every things ok. Could someone please point out what i am doing wrong? Thank you!

adamv commented 10 years ago

Please provide the full troubleshooting information asked for in the link at the end of the build failure, in gists.

But this looks like the project is not clang-compatible, and the reports will also need to be made upstream so they can fix.

guyfathi commented 10 years ago

I had the same problem with building open-mesh on Mavericks. The solution I used was to add

#include

To every file it was complaining about (~10 files). After that building was successful.

adamv commented 10 years ago

Proposed fix in #24701.