Closed julian-wang closed 9 years ago
I never tried to compite it with clang. Have you used the Cmake rules described here https://github.com/pmoulon/CMVS-PMVS/blob/master/Readme.txt
I'm not familiar with cmake. Cmake works when I added some config to Cmakelist as follows:
SET(GSLCBLAS_LIB ./program/thirdParty/gsl-1.13)
SET(GSL_LIB ./program/thirdParty/gsl-1.13)
However, when I tried to use makefile, I met a problem of the cross platform.
Linking CXX executable pmvs2
Undefined symbols for architecture x86_64:
"_gsl_deriv_central", referenced from:
PMVS3::Coptim::my_df(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df_ssd(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df_depth(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_alloc", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_free", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_iterate", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_nmsimplex", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_set", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_fminimizer_size", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_multimin_test_size", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
"_gsl_vector_alloc", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f0(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f1(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f2(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd0(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd1(double, void*) in libpmvs_lib.a(optim.cc.o)
...
"_gsl_vector_free", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f0(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f1(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f2(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd0(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd1(double, void*) in libpmvs_lib.a(optim.cc.o)
...
"_gsl_vector_get", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f(gsl_vector const*, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd(gsl_vector const*, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df_ssd(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_depth(gsl_vector const*, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df_depth(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
...
"_gsl_vector_set", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f0(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f1(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f2(double, void*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_df_ssd(gsl_vector const*, void*, gsl_vector*) in libpmvs_lib.a(optim.cc.o)
PMVS3::Coptim::my_f_ssd0(double, void*) in libpmvs_lib.a(optim.cc.o)
...
"_gsl_vector_set_all", referenced from:
PMVS3::Coptim::refinePatchBFGS(Patch::Cpatch&, int, int, int) in libpmvs_lib.a(optim.cc.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]: *** [main/pmvs2] Error 1
make[1]: *** [main/CMakeFiles/pmvs2.dir/all] Error 2
make: *** [all] Error 2
The dafault makefile are depracated, please prefer using the CMakeLists.
On unix platform you must link to your existing GSL library. See here: https://github.com/pmoulon/CMVS-PMVS/blob/master/program/CMakeLists.txt#L52
So please remove your following lines and look why the GSL module is not found on your computer.
SET(GSLCBLAS_LIB ./program/thirdParty/gsl-1.13) SET(GSL_LIB ./program/thirdParty/gsl-1.13)
Thanks a lot It works when I reinstalled GSL library without any configuration.
Have fun ;-) Don't hesitate to share your nice reconstruction on G+ ;-)
Thanks for your help.
@julian-wang : the repo have been updated, gsl is not longer necessary.
When I make, some errors occurred as follows:
mac clang version
$ clang -v Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.0.0 Thread model: posix