Мне трудно связать C ++ и Fortran с помощью компиляторов Intel для OSX (10.9), и я действительно ценю некоторую помощь!
Предыдущие связанные вопросы в основном говорят о gfortran и не касаются этой проблемы, в частности (связать C ++ / Fortran с компиляторами Intel + Mac OSX + main в Fortran). Тогда я твердо верю, что это не повторяющийся вопрос.
Основная программа находится на Фортране, и по внутренним причинам я не могу перенести основную на C ++. Так что ответы типа «напиши главное в C ++ и свяжи библиотеки Фортрана» не помогают.
Еще одна часть информации: потребности кода C ++ научная библиотека gsl-gnu а также ЦЕРН Minuit2 пакет
Код C ++ компилируется с использованием следующих флагов
icpc -c -O2 -std=c++11 -stdlib=libc++ -clangxx-name=clang++ -DHAVE_INLINE
где -DHAVE_INLINE
это флаг, необходимый gsl для оптимизации
Флаг ссылки кода Фортрана следующий
F90CRLINK = -cxxlib -lgsl -lgslcblas -lm -lMinuit2
и компилятор / компоновщик это ifort.
Сообщение об ошибке в процессе связывания, которое я могу опубликовать, если кому-то нужно это выяснить, предполагает, что ifort
не могу найти библиотеку C ++.
Обновление 1: сообщение об ошибке
Неопределенные символы для архитектуры x86_64:
«__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv», на который ссылается:
_minimizer в мин. о
__ZNSt3__16vectorIdNS_9allocatorIdEEEC1ERKS3_ в мин.
__ZNK4ROOT7Minuit220BasicFunctionMinimum14Параметры пользователяEv in min.o
__ZNSt3__16vectorIN4ROOT7Minuit215MinuitParameterENS_9allocatorIS3_EEE6assignIPS3_EENS_9enable_ifIXsr3std3__121__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_ в min.o
__ZNSt3__16vectorIjNS_9allocatorIjEEE6assignIPjEENS_9enable_ifIXsr3std3__121__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_ в min.o
__ZNSt3__16vectorIdNS_9allocatorIdEEE6assignIPdEENS_9enable_ifIXsr3std3__121__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_ в min.o
«__ZNKSt3__16locale9use_facetERNS0_2idE», на который ссылается:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNKSt3__18ios_base6getlocEv», на который ссылается:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEmc», на который ссылается:
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
«__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5_», на который ссылается:
__ZNSt3__16vectorIN4ROOT7Minuit215MinuitParameterENS_9allocatorIS3_EEE6assignIPS3_EENS_9enable_ifIXsr3std3__121__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_ в min.o
«__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev», на который ссылается:
__ZNSt3__113__vector_baseIN4ROOT7Minuit215MinuitParameterENS_9allocatorIS3_EEED1Ev в мин. О
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
__ZN4ROOT7Minuit216MnUserParametersD1Ev в мин.
__ZN4ROOT7Minuit220MnUserParameterStateD1Ev в мин.
__ZN4ROOT7Minuit28MnMigradD1Ev в мин.
__ZN4ROOT7Minuit219MnRefCountingPointerINS0_20BasicFunctionMinimumEE15RemoveReferenceEv в мин. О
__ZNK4ROOT7Minuit220BasicFunctionMinimum14Параметры пользователяEv in min.o
…
«__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_», на который ссылается:
__ZNSt3__16vectorIN4ROOT7Minuit215MinuitParameterENS_9allocatorIS3_EEE6assignIPS3_EENS_9enable_ifIXsr3std3__121__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_ в min.o
«__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc», на который ссылается:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv», на который ссылается:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_», на который ссылается:
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
«__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev», на который ссылается:
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
«__ZNSt3__14coutE», на который ссылаются:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
«__ZNSt3__15ctypeIcE2idE», на который ссылается:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNSt3__16localeD1Ev», на который ссылаются:
_minimizer в мин. о
__ZNK11MinFcnCosmoclERKNSt3__16vectorIdNS0_9allocatorIdEEEE в мин.
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_ в мин. О
«__ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv», на который ссылаются из:
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
«__ZNSt3__18ios_base5clearEj», на который ссылаются:
__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc в мин.
ld: символы не найдены для архитектуры x86_64
Задача ещё не решена.
Других решений пока нет …