Я хотел бы использовать библиотеки levmar на MacOS X Mojave. Чтобы скомпилировать библиотеки, мне пришлось сначала скомпилировать библиотеки f2c, которые идут без ошибок, а затем использовать их для компиляции библиотек levmar через cmake. Все они компилируются без ошибок, а также создается демонстрационная демонстрационная программа 'lmdemo'.
Однако, когда я пытаюсь скомпилировать пример expfit.c (который идет с загрузкой levmar), используя g ++, я получаю ошибку:
Неопределенные символы для архитектуры x86_64: " dgemm ", ссылка
от:
_dlevmar_trans_mat_mat_mult в liblevmar.a (misc.c.o) " dgeqrf ", на который ссылается:
_dAx_eq_b_QR в liblevmar.a (Axb.c.o)
_dAx_eq_b_QRLS в liblevmar.a (Axb.c.o) " dgesvd ", на который ссылается:
_dAx_eq_b_SVD в liblevmar.a (Axb.c.o)
_dlevmar_pseudoinverse в liblevmar.a (misc.c.o) " dgetrf ", на который ссылаются:
_dAx_eq_b_LU в liblevmar.a (Axb.c.o) " dgetrs ", на который ссылаются:
_dAx_eq_b_LU в liblevmar.a (Axb.c.o) " dorgqr ", на который ссылаются:
_dAx_eq_b_QR в liblevmar.a (Axb.c.o) " dpotf2 ", на который ссылается:
_dlevmar_chol в liblevmar.a (misc.c.o) " dpotrf ", на который ссылаются:
_dAx_eq_b_Chol в liblevmar.a (Axb.c.o) " dpotrs ", на который ссылаются:
_dAx_eq_b_Chol в liblevmar.a (Axb.c.o) " dsytrf ", на который ссылаются:
_dAx_eq_b_BK в liblevmar.a (Axb.c.o) " dsytrs ", на который ссылаются:
_dAx_eq_b_BK в liblevmar.a (Axb.c.o) " dtrtrs ", на который ссылаются:
_dAx_eq_b_QR в liblevmar.a (Axb.c.o)
_dAx_eq_b_QRLS в liblevmar.a (Axb.c.o) " sgemm ", на который ссылаются:
_slevmar_trans_mat_mat_mult в liblevmar.a (misc.c.o) " sgeqrf ", на который ссылается:
_sAx_eq_b_QR в liblevmar.a (Axb.c.o)
_sAx_eq_b_QRLS в liblevmar.a (Axb.c.o) " sgesvd ", на который ссылается:
_sAx_eq_b_SVD в liblevmar.a (Axb.c.o)
_slevmar_pseudoinverse в liblevmar.a (misc.c.o) " sgetrf ", на который ссылаются:
_sAx_eq_b_LU в liblevmar.a (Axb.c.o) " sgetrs ", на который ссылаются:
_sAx_eq_b_LU в liblevmar.a (Axb.c.o) " sorgqr ", на который ссылаются:
_sAx_eq_b_QR в liblevmar.a (Axb.c.o) " spotf2 ", на который ссылается:
_slevmar_chol в liblevmar.a (misc.c.o) " spotrf ", на который ссылаются:
_sAx_eq_b_Chol в liblevmar.a (Axb.c.o) " spotrs ", на который ссылаются:
_sAx_eq_b_Chol в liblevmar.a (Axb.c.o) " ssytrf ", на который ссылаются:
_sAx_eq_b_BK в liblevmar.a (Axb.c.o) " ssytrs ", на который ссылаются:
_sAx_eq_b_BK в liblevmar.a (Axb.c.o) " strtrs ", на который ссылаются:
_sAx_eq_b_QR в liblevmar.a (Axb.c.o)
_sAx_eq_b_QRLS в liblevmar.a (Axb.c.o) ld: символ (ы) не найден для архитектуры x86_64 clang: error: сбой команды компоновщика при выходе
код 1 (используйте -v для просмотра вызова)
Кажется, это происходит из рутины BLAS / LAPACK, не так ли? Почему пример 'lmdemo' работает хорошо?
g ++ компилятор дает этот результат для опции -v:
Настраивается с:
--prefix = / Приложения / Xcode.app / Содержание / Разработчик / usr --with-gxx-include-dir = / Приложения / Xcode.app / Содержание / Разработчик / Платформы / MacOSX.platform / Разработчик / SDKs / MacOSX10.14 .sdk / USR / включать / C ++ / 4.2.1
Apple LLVM версия 10.0.0 (clang-1000.11.45.5) Цель:
x86_64-apple-darwin18.2.0 Модель потока: posix Установленный каталог:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Google решает проблему и использует решение xcode-select --install не решает проблему.
Может кто-нибудь помочь мне, пожалуйста?
Спасибо
Z