I am trying to build the SCIP 7.0.3 opt suite on my Mac machine and I facing some issues.
I am using CMake to generate the make Makefile and once I type make, I am failing at the linking step. I am attaching the log here
Consolidate compiler generated dependencies of target papilolib
[100%] Linking CXX shared library ../../lib/libpapilo.dylib
ld: warning: object file (../libclusol.a(lusol.f90.o)) was built for newer macOS version (11.4) than being linked (11.0)
ld: warning: object file (../libclusol.a(lusol6b.f.o)) was built for newer macOS version (11.4) than being linked (11.0)
ld: warning: object file (../libclusol.a(lusol8b.f.o)) was built for newer macOS version (11.4) than being linked (11.0)
ld: warning: object file (../libclusol.a(lusol_util.f.o)) was built for newer macOS version (11.4) than being linked (11.0)
ld: warning: object file (../libclusol.a(lusol7b.f.o)) was built for newer macOS version (11.4) than being linked (11.0)
Undefined symbols for architecture x86_64:
"tbb::interface5::internal::task_base::destroy(tbb::task&)", referenced from:
void tbb::parallel_invoke<papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(), papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(), papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()>(double const&, papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'() const&, papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'() const&, tbb::task_group_context&) in papilolib.cpp.o
void tbb::parallel_invoke<papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(), papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(), papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()>(double const&, papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'() const&, papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'() const&, tbb::task_group_context&) in papilolib.cpp.o
void tbb::parallel_invoke<papilo::ConstraintMatrix<double>::compress(bool)::'lambda'(), papilo::ConstraintMatrix<double>::compress(bool)::'lambda0'()>(double const&, papilo::ConstraintMatrix<double>::compress(bool)::'lambda'() const&, tbb::task_group_context&) in papilolib.cpp.o
void tbb::parallel_invoke<papilo::ConstraintMatrix<double>::compress(bool)::'lambda1'(), papilo::ConstraintMatrix<double>::compress(bool)::'lambda2'(), papilo::ConstraintMatrix<double>::compress(bool)::'lambda3'(), papilo::ConstraintMatrix<double>::compress(bool)::'lambda4'(), papilo::ConstraintMatrix<double>::compress(bool)::'lambda5'()>(double const&, papilo::ConstraintMatrix<double>::compress(bool)::'lambda1'() const&, papilo::ConstraintMatrix<double>::compress(bool)::'lambda2'() const&, papilo::ConstraintMatrix<double>::compress(bool)::'lambda3'() const&, papilo::ConstraintMatrix<double>::compress(bool)::'lambda4'() const&, tbb::task_group_context&) in papilolib.cpp.o
void tbb::parallel_invoke<papilo::Problem<double>::compress(bool)::'lambda'(), papilo::Problem<double>::compress(bool)::'lambda0'(), papilo::Problem<double>::compress(bool)::'lambda1'()>(double const&, papilo::Problem<double>::compress(bool)::'lambda'() const&, papilo::Problem<double>::compress(bool)::'lambda0'() const&, tbb::task_group_context&) in papilolib.cpp.o
void tbb::interface9::internal::dynamic_grainsize_mode<tbb::interface9::internal::adaptive_mode<tbb::interface9::internal::auto_partition_type> >::work_balance<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::partition_type_base<tbb::interface9::internal::auto_partition_type>::execute<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
...
"tbb::internal::concurrent_vector_base_v3::internal_capacity() const", referenced from:
papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&) in papilolib.cpp.o
papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&) in papilolib.cpp.o
papilo::Sparsify<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&) in papilolib.cpp.o
"tbb::internal::allocate_continuation_proxy::allocate(unsigned long) const", referenced from:
void tbb::interface9::internal::partition_type_base<tbb::interface9::internal::auto_partition_type>::execute<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::dynamic_grainsize_mode<tbb::interface9::internal::adaptive_mode<tbb::interface9::internal::auto_partition_type> >::work_balance<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::partition_type_base<tbb::interface9::internal::auto_partition_type>::execute<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::dynamic_grainsize_mode<tbb::interface9::internal::adaptive_mode<tbb::interface9::internal::auto_partition_type> >::work_balance<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::partition_type_base<tbb::interface9::internal::auto_partition_type>::execute<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::dynamic_grainsize_mode<tbb::interface9::internal::adaptive_mode<tbb::interface9::internal::auto_partition_type> >::work_balance<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
void tbb::interface9::internal::partition_type_base<tbb::interface9::internal::auto_partition_type>::execute<tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>, tbb::blocked_range<int> >(double&, tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>&) in papilolib.cpp.o
...
"tbb::internal::allocate_root_with_context_proxy::free(tbb::task&) const", referenced from:
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Sparsify<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::Sparsify<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
...
"tbb::internal::allocate_root_with_context_proxy::allocate(unsigned long) const", referenced from:
void tbb::parallel_invoke<papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(), papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(), papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()>(double const&, papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'() const&, papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'() const&, tbb::task_group_context&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
void tbb::parallel_invoke<papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(), papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(), papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()>(double const&, papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'() const&, papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'() const&, tbb::task_group_context&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::ParallelColDetection<double>::computeColHashes(papilo::ConstraintMatrix<double> const&, std::__1::vector<double, std::__1::allocator<double> > const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::Probing<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const>::run(tbb::blocked_range<int> const&, papilo::DominatedCols<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'(tbb::blocked_range<int> const&) const&, tbb::auto_partitioner const&) in papilolib.cpp.o
...
"typeinfo for tbb::task", referenced from:
typeinfo for tbb::empty_task in papilolib.cpp.o
typeinfo for tbb::internal::function_invoker<papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()> in papilolib.cpp.o
typeinfo for tbb::internal::function_invoker<papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda0'()> in papilolib.cpp.o
typeinfo for tbb::interface9::internal::start_for<tbb::blocked_range<int>, papilo::ParallelRowDetection<double>::computeRowHashes(papilo::ConstraintMatrix<double> const&, unsigned int*)::'lambda'(tbb::blocked_range<int> const&), tbb::auto_partitioner const> in papilolib.cpp.o
typeinfo for tbb::interface9::internal::flag_task in papilolib.cpp.o
typeinfo for tbb::internal::function_invoker<papilo::ParallelRowDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda'()> in papilolib.cpp.o
typeinfo for tbb::internal::function_invoker<papilo::ParallelColDetection<double>::execute(papilo::Problem<double> const&, papilo::ProblemUpdate<double> const&, papilo::Num<double> const&, papilo::Reductions<double>&)::'lambda1'()> in papilolib.cpp.o
...
"__gfortran_generate_error", referenced from:
___lusol_MOD_lu1rec in libclusol.a(lusol.f90.o)
___lusol_MOD_lu6chk.constprop.0 in libclusol.a(lusol.f90.o)
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
"__gfortran_st_write", referenced from:
___lusol_MOD_lu1rec in libclusol.a(lusol.f90.o)
___lusol_MOD_lu6chk.constprop.0 in libclusol.a(lusol.f90.o)
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
_lu6prt_ in libclusol.a(lusol6b.f.o)
_lu8mod_ in libclusol.a(lusol8b.f.o)
_lu8adc_ in libclusol.a(lusol8b.f.o)
...
"__gfortran_st_write_done", referenced from:
___lusol_MOD_lu1rec in libclusol.a(lusol.f90.o)
___lusol_MOD_lu6chk.constprop.0 in libclusol.a(lusol.f90.o)
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
_lu6prt_ in libclusol.a(lusol6b.f.o)
_lu8mod_ in libclusol.a(lusol8b.f.o)
_lu8adc_ in libclusol.a(lusol8b.f.o)
...
"__gfortran_stop_string", referenced from:
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
"__gfortran_transfer_array_write", referenced from:
_lu6prt_ in libclusol.a(lusol6b.f.o)
"__gfortran_transfer_character_write", referenced from:
___lusol_MOD_lu6chk.constprop.0 in libclusol.a(lusol.f90.o)
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
_lu7rnk_ in libclusol.a(lusol_util.f.o)
_lu6chk_ in libclusol.a(lusol_util.f.o)
_lu1fad_ in libclusol.a(lusol_util.f.o)
_lu1fac_ in libclusol.a(lusol_util.f.o)
...
"__gfortran_transfer_integer_write", referenced from:
___lusol_MOD_lu1rec in libclusol.a(lusol.f90.o)
___lusol_MOD_lu6chk.constprop.0 in libclusol.a(lusol.f90.o)
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
_lu6prt_ in libclusol.a(lusol6b.f.o)
_lu8mod_ in libclusol.a(lusol8b.f.o)
_lu8adc_ in libclusol.a(lusol8b.f.o)
...
"__gfortran_transfer_logical_write", referenced from:
___lusol_MOD_lu1rec in libclusol.a(lusol.f90.o)
_lu1rec_ in libclusol.a(lusol_util.f.o)
"__gfortran_transfer_real_write", referenced from:
___lusol_MOD_lu8rpc in libclusol.a(lusol.f90.o)
___lusol_MOD_lu1fac in libclusol.a(lusol.f90.o)
_lu6prt_ in libclusol.a(lusol6b.f.o)
_lu8adc_ in libclusol.a(lusol8b.f.o)
_lu8adr_ in libclusol.a(lusol8b.f.o)
_lu1fad_ in libclusol.a(lusol_util.f.o)
_lu1fac_ in libclusol.a(lusol_util.f.o)
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libpapilo.dylib] Error 1
make[1]: *** [papilo/binaries/CMakeFiles/papilolib.dir/all] Error 2
make: *** [all] Error 2
I installed TBB on my Mac using the command brew install tbb
The above log has to be trimmed in the middle as I am unable to paste the full log.
For full log https://pastebin.com/p7YL4161
edit: I am using macOS latest version and my cmake -DCMAKE_BUILD_TYPE=Release -DIPOPT=off ..
-- Build type: Release
SoPlex with Boost CPP multiprecision libraries.
-- Could NOT find Quadmath (missing: Quadmath_LIBRARY Quadmath_INCLUDE_DIR)
-- Found Boost: /usr/local/lib/cmake/Boost-1.76.0/BoostConfig.cmake (found suitable version "1.76.0", minimum required is "1.58.0") found components: program_options
-- Found Boost: /usr/local/lib/cmake/Boost-1.76.0/BoostConfig.cmake (found version "1.76.0")
-- Could NOT find Quadmath (missing: Quadmath_LIBRARY Quadmath_INCLUDE_DIR)
-- Git hash: e567fef
-- Build shared libraries: ON
-- Build type: Release
-- Finding ZLIB
-- Finding ZLIB - found
-- Finding Readline
-- Finding Readline - found
-- Finding GMP
-- Finding GMP - found
-- Finding PAPILO
-- Finding PAPILO - found
-- Finding Solver "spx"
-- Finding Soplex
-- Finding SOPLEX - found
-- Support CLP: OFF
-- Support CPLEX: OFF
-- Support GLOP: OFF
-- Support GUROBI: OFF
-- Support XPRESS: OFF
-- Support MOSEK: OFF
-- Support QSO: OFF
-- Finding symmetry computation program "bliss"
-- Finding BLISS
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS)
-- Finding BLISS - not found
-- CodeCoverage: OFF
-- Finding ZIMPL
-- Finding ZIMPL - found
-- Support IPOPT: OFF
-- Support WORHP: OFF
-- Looking for FE_DOWNWARD
-- Looking for FE_DOWNWARD - found
-- Finding CRITERION
-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR)
-- Finding CRITERION - not found
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR)
-- Support AMPL: OFF
-- Build shared libraries: ON
-- Build type: Release
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- Found GSL: /usr/local/Cellar/gsl/2.6/include (found suitable version "2.6", minimum required is "2.0")
-- Could NOT find CLIQUER (missing: CLIQUER_INCLUDE_DIRS CLIQUER_LIBRARIES)
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS)
-- Found Boost: /usr/local/lib/cmake/Boost-1.76.0/BoostConfig.cmake (found version "1.76.0") found components: iostreams serialization program_options
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB - Success
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2 - Success
-- Linking solvers: SCIP;SoPlex
-- The following OPTIONAL packages have been found:
* Threads
* BLAS
* PkgConfig
* GSL (required version >= 2.0)
-- The following REQUIRED packages have been found:
* BISON
* FLEX
* TBB
* Readline
* PAPILO
* ZIMPL
* ZLIB
* GMP
* SCIP
* SOPLEX
* boost_headers (required version == 1.76.0)
* Boost
-- The following OPTIONAL packages have not been found:
* Quadmath
* CRITERION
* CLIQUER
* HMETIS
* BLISS
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/username/Downloads/scipoptsuite-7.0.3/build
the compile fails because there is a internal function missing in your tbb lib.
TBB made a switch from tbb -> oneTBB base on the oneapi. We currently don't support the oneTBB but are working on that.
https://formulae.brew.sh/formula/tbb Tbb links to oneTBB so you need to install tbb#2020 (https://formulae.brew.sh/formula/tbb#2020).
Maybe you need to remove or unlink tbb before that to get the build running. Remember to delete the build directory before trying to recompile due to caching issues.
Could you please try that and then report if it worked.
Philipp
As i am pretty much out of ideas and the google results by now have reached the point where they hit ~10 and less, i now turn here in hope of seeing the answer or at least a clue that leads me to the actual solution.
I am creating a project that can be distributed as executable, non-static library and static library.
I want to use the library in a WPF project (C#) which is why i created a simple CLR wrapper.
It all worked very well up until the most recent change introduced into the base-library.
Now, i get linkage errors (5 in total) on all calls to the "main" class in the library project:
1>wrapper.obj : error LNK2028: unresolved token (0A0016EB) "public: class std::vector<struct sqf::diagnostics::stackdump,class std::allocator<struct sqf::diagnostics::stackdump> > __thiscall sqf::vmstack::dump_callstack_diff(class std::shared_ptr<class sqf::callstack>)" (?dump_callstack_diff#vmstack#sqf##$$FQAE?AV?$vector#Ustackdump#diagnostics#sqf##V?$allocator#Ustackdump#diagnostics#sqf###std###std##V?$shared_ptr#Vcallstack#sqf###4##Z) referenced in function "public: class std::vector<struct sqf::diagnostics::stackdump,class std::allocator<struct sqf::diagnostics::stackdump> > __thiscall SqfVm::wrapper::get_stackdump(void)" (?get_stackdump#wrapper#SqfVm##$$FQAE?AV?$vector#Ustackdump#diagnostics#sqf##V?$allocator#Ustackdump#diagnostics#sqf###std###std##XZ)
1>wrapper.obj : error LNK2028: unresolved token (0A0016F5) "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall sqf::virtualmachine::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess#virtualmachine#sqf##$$FQAE?AV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std##V34#AA_N0#Z) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall SqfVm::wrapper::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess#wrapper#SqfVm##$$FQAE?AV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std##V34#AA_N0#Z)
1>wrapper.obj : error LNK2028: unresolved token (0A0016F6) "public: struct sqf::parse::astnode __thiscall sqf::virtualmachine::parse_sqf_cst(class std::basic_string_view<char,struct std::char_traits<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?parse_sqf_cst#virtualmachine#sqf##$$FQAE?AUastnode#parse#2#V?$basic_string_view#DU?$char_traits#D#std###std##AA_NV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##6##Z) referenced in function "public: struct sqf::parse::astnode __thiscall sqf::virtualmachine::parse_sqf_cst(class std::basic_string_view<char,struct std::char_traits<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?parse_sqf_cst#virtualmachine#sqf##$$FQAE?AUastnode#parse#2#V?$basic_string_view#DU?$char_traits#D#std###std##V?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##6##Z)
1>wrapper.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall sqf::virtualmachine::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess#virtualmachine#sqf##$$FQAE?AV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std##V34#AA_N0#Z) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall SqfVm::wrapper::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess#wrapper#SqfVm##$$FQAE?AV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std##V34#AA_N0#Z)
1>wrapper.obj : error LNK2019: unresolved external symbol "public: struct sqf::parse::astnode __thiscall sqf::virtualmachine::parse_sqf_cst(class std::basic_string_view<char,struct std::char_traits<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?parse_sqf_cst#virtualmachine#sqf##$$FQAE?AUastnode#parse#2#V?$basic_string_view#DU?$char_traits#D#std###std##AA_NV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##6##Z) referenced in function "public: struct sqf::parse::astnode __thiscall sqf::virtualmachine::parse_sqf_cst(class std::basic_string_view<char,struct std::char_traits<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?parse_sqf_cst#virtualmachine#sqf##$$FQAE?AUastnode#parse#2#V?$basic_string_view#DU?$char_traits#D#std###std##V?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##6##Z)
1>wrapper.obj : error LNK2019: unresolved external symbol "public: class std::vector<struct sqf::diagnostics::stackdump,class std::allocator<struct sqf::diagnostics::stackdump> > __thiscall sqf::vmstack::dump_callstack_diff(class std::shared_ptr<class sqf::callstack>)" (?dump_callstack_diff#vmstack#sqf##$$FQAE?AV?$vector#Ustackdump#diagnostics#sqf##V?$allocator#Ustackdump#diagnostics#sqf###std###std##V?$shared_ptr#Vcallstack#sqf###4##Z) referenced in function "public: class std::vector<struct sqf::diagnostics::stackdump,class std::allocator<struct sqf::diagnostics::stackdump> > __thiscall SqfVm::wrapper::get_stackdump(void)" (?get_stackdump#wrapper#SqfVm##$$FQAE?AV?$vector#Ustackdump#diagnostics#sqf##V?$allocator#Ustackdump#diagnostics#sqf###std###std##XZ)
1>wrapper.obj : error LNK2019: unresolved external symbol "public: __thiscall sqf::virtualmachine::virtualmachine(class Logger &,unsigned __int64)" (??0virtualmachine#sqf##QAE#AAVLogger##_K#Z) referenced in function "public: __thiscall sqf::virtualmachine::virtualmachine(class Logger &)" (??0virtualmachine#sqf##QAE#AAVLogger###Z)
1>D:\Git\SQFvm\clrBridge\Release\clrBridge.dll : fatal error LNK1120: 7 unresolved externals
The projects, can both be found here:
The C++ Project https://github.com/SQFvm/vm
The C++/CLR Project https://github.com/SQFvm/ClrBridge
Was able to get rid of the LNK2028 issues by adding another separation layer (wrapper.cpp & wrapper.h) and then putting a #pragma unmanaged at the top of the cpp file.
Only the LNK2019 issues are left now
For those users who may find this question in the future, here is what helped me:
Separating all classes
Adding #pragma managed to the an unmanaged wrapper for the actual class (got rid of the LNK2028)
One of the following commits:
Moving invalidly placed C method out of external "C" that is not involved in any way normally to the static library built but MAY intefere with the CLR build process as the header still was there
Altering the arangement of the constructor
Hope this helps you.
I have been having a lot of linker errors. I made sure to install all of the libraries I need via macports. I sorted out all of the include errors, but now I have a lot of linker errors left.
HEADER_SEARCH_PATHS = /opt/local/include /usr/include /opt/local/include/json
LIBRARY_SEARCH_PATHS = /opt/local/lib /usr/local/lib
Build target PianoLounge
Ld /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug/PianoLounge.app/Contents/MacOS/PianoLounge normal x86_64
cd /Users/jordan/Projects/Cocoa/PianoLounge
setenv MACOSX_DEPLOYMENT_TARGET 10.8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug -L/opt/local/lib -L/usr/local/lib -F/Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug -filelist /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Intermediates/PianoLounge.build/Debug/PianoLounge.build/Objects-normal/x86_64/PianoLounge.LinkFileList -mmacosx-version-min=10.8 -fobjc-arc -fobjc-link-runtime -framework Cocoa -o /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug/PianoLounge.app/Contents/MacOS/PianoLounge
Undefined symbols for architecture x86_64:
"_gcry_cipher_close", referenced from:
_PianoDestroyPartner in piano.o
"_gcry_cipher_decrypt", referenced from:
_PianoDecryptString in crypt.o
"_gcry_cipher_encrypt", referenced from:
_PianoEncryptString in crypt.o
"_gcry_cipher_open", referenced from:
_PianoInit in piano.o
"_gcry_cipher_setkey", referenced from:
_PianoInit in piano.o
"_gnutls_bye", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_allocate_credentials", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_free_credentials", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_get_peers", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_certificate_type_get", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_credentials_set", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_deinit", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_handshake", referenced from:
_WaitressConnect in waitress.o
"_gnutls_init", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_record_recv", referenced from:
_WaitressGnutlsRead in waitress.o
"_gnutls_record_send", referenced from:
_WaitressGnutlsWrite in waitress.o
"_gnutls_set_default_priority", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_ptr", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_pull_function", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_push_function", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_x509_crt_deinit", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_get_fingerprint", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_import", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_init", referenced from:
_WaitressTlsVerify in waitress.o
"_json_object_array_add", referenced from:
_PianoRequest in request.o
"_json_object_array_get_idx", referenced from:
_PianoResponse in response.o
"_json_object_array_length", referenced from:
_PianoResponse in response.o
"_json_object_get_boolean", referenced from:
_PianoResponse in response.o
_PianoJsonParseStation in response.o
"_json_object_get_double", referenced from:
_PianoResponse in response.o
"_json_object_get_int", referenced from:
_PianoResponse in response.o
"_json_object_get_object", referenced from:
_PianoResponse in response.o
"_json_object_get_string", referenced from:
_PianoResponse in response.o
_PianoJsonStrdup in response.o
"_json_object_new_array", referenced from:
_PianoRequest in request.o
"_json_object_new_boolean", referenced from:
_PianoRequest in request.o
"_json_object_new_int", referenced from:
_PianoRequest in request.o
"_json_object_new_object", referenced from:
_PianoRequest in request.o
"_json_object_new_string", referenced from:
_PianoRequest in request.o
"_json_object_object_add", referenced from:
_PianoRequest in request.o
"_json_object_object_get", referenced from:
_PianoResponse in response.o
_PianoJsonStrdup in response.o
_PianoJsonParseStation in response.o
"_json_object_put", referenced from:
_PianoRequest in request.o
_PianoResponse in response.o
"_json_object_to_json_string", referenced from:
_PianoRequest in request.o
"_json_tokener_parse", referenced from:
_PianoResponse in response.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It looks like you are missing the required libraries gnutls, gcrypt and json to link against. Unless you tell Xcode what libraries to link against it won't have any idea. It will look something like this:
-lgnutls -lgcrypt -ljson
(That is an example, I am not sure what libraries specifically are required).
You'll want to add those as extra libraries to link against in your Xcode project.