Closed alicebain closed 10 months ago
Can anyone please have a look? This is crucial for my project. Thanks!!
@alicebain could you please paste the full output of cmake
?
From the look of it, it seems like the linker is trying to link the ipopt build directory /home/xx/optimizer/c++/ipopt/lib
rather than the library (which should be called something like libipopt.so
or similar).
Any specific reason why you are compiling from source rather than using the conda packages?
Sorry, this is the full cmake
output. Unfortunately, I don't have conda. I'm running this on Ubuntu 20.04.
-- System name: Linux
-- The fork_island UDI will be available.
-- The C++ compiler ID is: GNU
-- YACMA autodetected C++ flags: -fdiagnostics-color=auto;-ftemplate-depth=1024;-fdiagnostics-show-template-tree;-Wno-attributes
-- YACMA autodetected C++ debug flags: -Waddress-of-packed-member;-Wall;-Wextra;-Wnon-virtual-dtor;-Wlogical-op;-Wconversion;-Wdeprecated;-Wold-style-cast;-Wdisabled-optimization;-ftemplate-backtrace-limit=0;-fstack-protector-all;-Wodr;-Wsuggest-final-types;-Wsuggest-final-methods;-Wsuggest-override;-Wshift-negative-value;-Wshift-overflow=2;-Wduplicated-cond;-Wnull-dereference;-Wrestrict;-Waligned-new;-Wcast-align=strict;-Wno-maybe-uninitialized;-Wmismatched-tags;-Wredundant-tags
-- Thread library: -pthread
-- POSIX threads detected.
-- POSIX threads affinity extensions detected.
-- The 'thread_local' keyword is supported.
-- Library installation directory: lib
-- TBB found using config mode.
-- Requested IPOPT components: header;libipopt
-- Creating the 'pagmo::IPOPT::header' imported target.
-- Path to the ipopt headers: ./optimizer/c++/ipopt/include/coin-or
-- Creating the 'pagmo::IPOPT::libipopt' imported target.
-- Path to libipopt: ./optimizer/c++/ipopt/lib
-- Required Boost libraries: serialization
-- Detected Boost version: 1.71.0
-- Boost include dirs: /usr/include
-- Configuring done
-- Generating done
-- Build files have been written to: ./pagmo2-2.19.0/build
Scanning dependencies of target pagmo
[ 1%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/cmaes.cpp.o
[ 2%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/ipopt.cpp.o
[ 3%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/xnes.cpp.o
[ 4%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/nlopt.cpp.o
[ 5%] Building CXX object CMakeFiles/pagmo.dir/src/islands/fork_island.cpp.o
[ 6%] Building CXX object CMakeFiles/pagmo.dir/src/algorithm.cpp.o
[ 7%] Building CXX object CMakeFiles/pagmo.dir/src/population.cpp.o
[ 8%] Building CXX object CMakeFiles/pagmo.dir/src/problem.cpp.o
[ 9%] Building CXX object CMakeFiles/pagmo.dir/src/bfe.cpp.o
[ 10%] Building CXX object CMakeFiles/pagmo.dir/src/island.cpp.o
[ 11%] Building CXX object CMakeFiles/pagmo.dir/src/archipelago.cpp.o
[ 12%] Building CXX object CMakeFiles/pagmo.dir/src/io.cpp.o
[ 13%] Building CXX object CMakeFiles/pagmo.dir/src/rng.cpp.o
[ 15%] Building CXX object CMakeFiles/pagmo.dir/src/threading.cpp.o
[ 16%] Building CXX object CMakeFiles/pagmo.dir/src/topology.cpp.o
[ 17%] Building CXX object CMakeFiles/pagmo.dir/src/r_policy.cpp.o
[ 18%] Building CXX object CMakeFiles/pagmo.dir/src/s_policy.cpp.o
[ 19%] Building CXX object CMakeFiles/pagmo.dir/src/problems/null_problem.cpp.o
[ 20%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2006.cpp.o
[ 21%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2009.cpp.o
[ 22%] Building CXX object CMakeFiles/pagmo.dir/src/problems/schwefel.cpp.o
[ 23%] Building CXX object CMakeFiles/pagmo.dir/src/problems/rosenbrock.cpp.o
[ 24%] Building CXX object CMakeFiles/pagmo.dir/src/problems/hock_schittkowski_71.cpp.o
[ 25%] Building CXX object CMakeFiles/pagmo.dir/src/problems/inventory.cpp.o
[ 26%] Building CXX object CMakeFiles/pagmo.dir/src/problems/zdt.cpp.o
[ 27%] Building CXX object CMakeFiles/pagmo.dir/src/problems/dtlz.cpp.o
[ 29%] Building CXX object CMakeFiles/pagmo.dir/src/problems/unconstrain.cpp.o
[ 30%] Building CXX object CMakeFiles/pagmo.dir/src/problems/translate.cpp.o
[ 31%] Building CXX object CMakeFiles/pagmo.dir/src/problems/decompose.cpp.o
[ 32%] Building CXX object CMakeFiles/pagmo.dir/src/problems/golomb_ruler.cpp.o
[ 33%] Building CXX object CMakeFiles/pagmo.dir/src/problems/lennard_jones.cpp.o
[ 34%] Building CXX object CMakeFiles/pagmo.dir/src/problems/ackley.cpp.o
[ 35%] Building CXX object CMakeFiles/pagmo.dir/src/problems/griewank.cpp.o
[ 36%] Building CXX object CMakeFiles/pagmo.dir/src/problems/rastrigin.cpp.o
[ 37%] Building CXX object CMakeFiles/pagmo.dir/src/problems/minlp_rastrigin.cpp.o
[ 38%] Building CXX object CMakeFiles/pagmo.dir/src/problems/luksan_vlcek1.cpp.o
[ 39%] Building CXX object CMakeFiles/pagmo.dir/src/problems/wfg.cpp.o
[ 40%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2013.cpp.o
[ 41%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2013_data.cpp.o
[ 43%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2014.cpp.o
[ 44%] Building CXX object CMakeFiles/pagmo.dir/src/problems/cec2014_data.cpp.o
[ 45%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/null_algorithm.cpp.o
[ 46%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/de.cpp.o
[ 47%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/pso.cpp.o
[ 48%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/not_population_based.cpp.o
[ 49%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/compass_search.cpp.o
[ 50%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/mbh.cpp.o
[ 51%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/cstrs_self_adaptive.cpp.o
[ 52%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/pso_gen.cpp.o
[ 53%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/ihs.cpp.o
[ 54%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/sade.cpp.o
[ 55%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/bee_colony.cpp.o
[ 56%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/sea.cpp.o
[ 58%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/sga.cpp.o
[ 59%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/simulated_annealing.cpp.o
[ 60%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/moead.cpp.o
[ 61%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/moead_gen.cpp.o
[ 62%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/nsga2.cpp.o
[ 63%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/gaco.cpp.o
[ 64%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/de1220.cpp.o
[ 65%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/gwo.cpp.o
[ 66%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/maco.cpp.o
[ 67%] Building CXX object CMakeFiles/pagmo.dir/src/algorithms/nspso.cpp.o
[ 68%] Building CXX object CMakeFiles/pagmo.dir/src/islands/thread_island.cpp.o
[ 69%] Building CXX object CMakeFiles/pagmo.dir/src/batch_evaluators/default_bfe.cpp.o
[ 70%] Building CXX object CMakeFiles/pagmo.dir/src/batch_evaluators/member_bfe.cpp.o
[ 72%] Building CXX object CMakeFiles/pagmo.dir/src/batch_evaluators/thread_bfe.cpp.o
[ 73%] Building CXX object CMakeFiles/pagmo.dir/src/topologies/base_bgl_topology.cpp.o
[ 74%] Building CXX object CMakeFiles/pagmo.dir/src/topologies/unconnected.cpp.o
[ 75%] Building CXX object CMakeFiles/pagmo.dir/src/topologies/fully_connected.cpp.o
[ 76%] Building CXX object CMakeFiles/pagmo.dir/src/topologies/ring.cpp.o
[ 77%] Building CXX object CMakeFiles/pagmo.dir/src/topologies/free_form.cpp.o
[ 78%] Building CXX object CMakeFiles/pagmo.dir/src/r_policies/fair_replace.cpp.o
[ 79%] Building CXX object CMakeFiles/pagmo.dir/src/s_policies/select_best.cpp.o
[ 80%] Building CXX object CMakeFiles/pagmo.dir/src/utils/constrained.cpp.o
[ 81%] Building CXX object CMakeFiles/pagmo.dir/src/utils/discrepancy.cpp.o
[ 82%] Building CXX object CMakeFiles/pagmo.dir/src/utils/generic.cpp.o
[ 83%] Building CXX object CMakeFiles/pagmo.dir/src/utils/genetic_operators.cpp.o
[ 84%] Building CXX object CMakeFiles/pagmo.dir/src/utils/multi_objective.cpp.o
[ 86%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hypervolume.cpp.o
[ 87%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_algorithm.cpp.o
[ 88%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_bf_approx.cpp.o
[ 89%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_bf_fpras.cpp.o
[ 90%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_hv3d.cpp.o
[ 91%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_hv2d.cpp.o
[ 92%] Building CXX object CMakeFiles/pagmo.dir/src/utils/hv_algos/hv_hvwfg.cpp.o
[ 93%] Building CXX object CMakeFiles/pagmo.dir/src/detail/base_sr_policy.cpp.o
[ 94%] Building CXX object CMakeFiles/pagmo.dir/src/detail/bfe_impl.cpp.o
[ 95%] Building CXX object CMakeFiles/pagmo.dir/src/detail/task_queue.cpp.o
[ 96%] Building CXX object CMakeFiles/pagmo.dir/src/detail/prime_numbers.cpp.o
[ 97%] Building CXX object CMakeFiles/pagmo.dir/src/detail/gte_getter.cpp.o
[ 98%] Building CXX object CMakeFiles/pagmo.dir/src/detail/type_name.cpp.o
[100%] Linking CXX shared library libpagmo.so
/usr/bin/ld: cannot find ./optimizer/c++/ipopt/lib: file format not recognized
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pagmo.dir/build.make:1453: libpagmo.so.9.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:104: CMakeFiles/pagmo.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
[ 1%] Linking CXX shared library libpagmo.so
/usr/bin/ld: cannot find ./optimizer/c++/ipopt/lib: file format not recognized
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pagmo.dir/build.make:1453: libpagmo.so.9.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:104: CMakeFiles/pagmo.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
@alicebain
The cmake
output here:
-- Path to libipopt: ./optimizer/c++/ipopt/lib
seems to indicate that the path to the IPOPT library points to a directory, rather than a file. It would be helpful to know:
1) is there a file named libipopt.so
or similar within the ./optimizer/c++/ipopt/lib
directory, and
2) how did you invoke CMake - specifically, did you pass any option to the cmake
invocation to indicate to the pagmo build system where the IPOPT library is located?
I'm running:
cmake ../ -DCMAKE_INSTALL_PREFIX=./optimizer/c++/pagmo2 -DPAGMO_WITH_NLOPT=ON -DPAGMO_WITH_IPOPT=ON -DPAGMO_WITH_EIGEN3=ON -DNLopt_DIR=./optimizer/c++/nlopt/lib/cmake/nlopt -DPAGMO_IPOPT_LIBRARY=./optimizer/c++/ipopt/lib -DPAGMO_IPOPT_INCLUDE_DIR=./optimizer/c++/ipopt/include/coin-or
cmake --build . -j 4
This is the contents of the directory ./optimizer/c++/ipopt/lib:
./optimizer/c++/ipopt/lib$ ls
libcoinhsl.la libcoinmetis.so.2.0.0 libipopt.so.3
libcoinhsl.so libcoinmumps.la libipopt.so.3.14.12
libcoinhsl.so.2 libcoinmumps.so libsipopt.la
libcoinhsl.so.2.2.1 libcoinmumps.so.2 libsipopt.so
libcoinmetis.la libcoinmumps.so.2.0.0 libsipopt.so.3
libcoinmetis.so libipopt.la libsipopt.so.3.14.12
libcoinmetis.so.2 libipopt.so pkgconfig
So, it looks like the library exists.
@alicebain the problem is in the cmake
invocation:
-DPAGMO_IPOPT_LIBRARY=./optimizer/c++/ipopt/lib
This should be instead:
-DPAGMO_IPOPT_LIBRARY=./optimizer/c++/ipopt/lib/libipopt.so
It worked! Thanks so much! I did not know that you need to specify the path to the file, I'm used to passing the folder. Thanks again!
Describe the bug I am trying to compile pagmo2 (2.19.0) using IPOPT. I get the error:
To Reproduce
Expected behavior Complete compilation.
Environment (please complete the following information):
Additional context My IPOPT installation is working and is compiled with the same compiler version.
Thanks