Closed viniciuscurti closed 2 years ago
Hey @viniciuscurti, for Pop!_OS, you'll need to build the OR-Tools C++ library from source, then run:
bundle config build.or-tools --with-or-tools-dir=/path/to/or-tools
Hi @ankane !
Thanks for the help, but i still facing a problem.
After done the or-tools instaltion from source, done the bundle config build to the correct path an then run bundle again to install the gem is now getting this error message:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools
/home/viniciuscurti/.rbenv/versions/2.6.3/bin/ruby -I /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20210723-238374-j700b1.rb extconf.rb --with-or-tools-dir\=/usr/lib/or-tools /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/lib/mkmf-rice.rb:16: warning: already initialized constant MakeMakefile::CONFTEST_C /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/2.6.0/mkmf.rb:259: warning: previous definition of CONFTEST_C was here checking for rice/rice.hpp in /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include... yes checking for -lstdc++... yes checking for -lstdc++... yes checking for -lortools... yes creating Makefile
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools make "DESTDIR=" clean
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools
make "DESTDIR="
compiling ext.cpp
cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++
ext.cpp:2:10: fatal error: ortools/algorithms/knapsack_solver.h: No such file or directory
2 | #include <ortools/algorithms/knapsack_solver.h>
| ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:236: ext.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4 for inspection. Results logged to /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/or-tools-0.3.4/gem_make.out
An error occurred while installing or-tools (0.3.4), and Bundler cannot continue.
Make sure that gem install or-tools -v '0.3.4' --source 'https://rubygems.org/'
succeeds before bundling.
In Gemfile: or-tools
Any suggestion with what i might do to solve?
Thanks again for the usefull tip to install.
And now i`m facing this error after taking a suggetion from another issue to install or-tools on usr/lib than run ldconfig -v.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools
/home/viniciuscurti/.rbenv/versions/2.6.3/bin/ruby -I /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20210723-249203-1nhwy61.rb extconf.rb --with-or-tools-dir\=/usr/lib/or-tools /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/lib/mkmf-rice.rb:16: warning: already initialized constant MakeMakefile::CONFTEST_C /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/2.6.0/mkmf.rb:259: warning: previous definition of CONFTEST_C was here checking for rice/rice.hpp in /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include... yes checking for -lstdc++... yes checking for -lstdc++... yes checking for -lortools... yes creating Makefile
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools make "DESTDIR=" clean
current directory: /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4/ext/or-tools
make "DESTDIR="
compiling ext.cpp
cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++
ext.cpp:2:10: fatal error: ortools/algorithms/knapsack_solver.h: No such file or directory
2 | #include <ortools/algorithms/knapsack_solver.h>
| ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:236: ext.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/or-tools-0.3.4 for inspection. Results logged to /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/or-tools-0.3.4/gem_make.out
An error occurred while installing or-tools (0.3.4), and Bundler cannot continue.
Make sure that gem install or-tools -v '0.3.4' --source 'https://rubygems.org/'
succeeds before bundling.
In Gemfile: or-tools
Try the following:
find /path/to/or-tools/lib
and find /path/to/or-tools/include
(after compiling the C++ library)
Hi,
I`m getting some trouble installing or-tools.
The log shows this message: find_header: checking for rice/rice.hpp in /home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include... -------------------- yes
"g++ -o conftest -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.cc -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -lruby -lm -lc" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ cc1plus: warning: unrecognized command line option ‘-Wno-self-assign’ cc1plus: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1plus: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ checked program was: / begin / 1: #include "ruby.h" 2: 3: int main(int argc, char *argv) 4: { 5: return 0; 6: } / end */
"g++ -E -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -fPIC conftest.cc -o conftest.i" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ conftest.cc:3:10: fatal error: rice/rice.hpp: No such file or directory 3 | #include <rice/rice.hpp> | ^
~~~~~~ compilation terminated. checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <rice/rice.hpp> / end /"g++ -E -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -fPIC -I/home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include conftest.cc -o conftest.i" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ cc1plus: warning: unrecognized command line option ‘-Wno-self-assign’ cc1plus: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1plus: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <rice/rice.hpp> / end /
have_library: checking for -lstdc++... -------------------- yes
"g++ -o conftest -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.cc -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -lruby -lstdc++ -lm -lc" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ cc1plus: warning: unrecognized command line option ‘-Wno-self-assign’ cc1plus: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1plus: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ checked program was: / begin / 1: #include "ruby.h" 2: 3: /top/ 4: extern int t(void); 5: int main(int argc, char *argv) 6: { 7: if (argc > 1000000) { 8: int ( volatile tp)(void)=(int ()(void))&t; 9: printf("%d", (tp)()); 10: } 11: 12: return 0; 13: } 14: 15: int t(void) { ; return 0; } / end /
have_library: checking for -lstdc++... -------------------- yes
"g++ -o conftest -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.cc -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -lstdc++ -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -lruby -lstdc++ -lstdc++ -lm -lc" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ cc1plus: warning: unrecognized command line option ‘-Wno-self-assign’ cc1plus: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1plus: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ checked program was: / begin / 1: #include "ruby.h" 2: 3: /top/ 4: extern int t(void); 5: int main(int argc, char *argv) 6: { 7: if (argc > 1000000) { 8: int ( volatile tp)(void)=(int ()(void))&t; 9: printf("%d", (tp)()); 10: } 11: 12: return 0; 13: } 14: 15: int t(void) { ; return 0; } / end /
have_library: checking for -lortools... -------------------- no
"g++ -o conftest -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/x86_64-linux -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/backward -I/home/viniciuscurti/.rbenv/versions/2.6.3/include/ruby-2.6.0 -I. -I/home/viniciuscurti/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rice-4.0.2/include -I/path/to/or-tools/include -I/path/to/or-tools/include -I/home/viniciuscurti/.rbenv/versions/2.6.3/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.cc -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L/path/to/or-tools/lib -Wl,-rpath,/path/to/or-tools/lib -L. -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/path/to/or-tools/lib -L/path/to/or-tools/lib -lstdc++ -lstdc++ -Wl,-rpath,/home/viniciuscurti/.rbenv/versions/2.6.3/lib -L/home/viniciuscurti/.rbenv/versions/2.6.3/lib -lruby -lortools -lstdc++ -lstdc++ -lm -lc" cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ cc1plus: warning: command line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++ cc1plus: warning: unrecognized command line option ‘-Wno-self-assign’ cc1plus: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1plus: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ /usr/bin/ld: cannot find -lortools collect2: error: ld returned 1 exit status checked program was: / begin / 1: #include "ruby.h" 2: 3: /top/ 4: extern int t(void); 5: int main(int argc, char *argv) 6: { 7: if (argc > 1000000) { 8: int ( volatile tp)(void)=(int ()(void))&t; 9: printf("%d", (tp)()); 10: } 11: 12: return 0; 13: } 14: 15: int t(void) { ; return 0; } / end /
Could you help me with??
I`m using pop os 21.04 as OS.
Thanks.