-framework Accelerate, куда включить ‹Accelerate/Accelerate.h›

Я пытаюсь скомпилировать чужой код, а простого заголовочного файла нет. Мне нужно связать библиотеки lapack и blas по умолчанию на osx, и после некоторых поисков я понял, что они находятся в структуре Accelerate, и в моем make.inc я использовал что-то вроде

LAPACK_LIBS = -framework Accelerate

Теперь я прочитал на странице руководства, что я должен включить

#include <Accelerate/Accelerate.h>

Есть ли способ сделать это в make.inc?

Извините, если это глупо, я на самом деле не программист, и я изо всех сил старался искать...


Я получаю следующие ошибки:

2 warnings generated.
Undefined symbols for architecture x86_64:
  "_dgemm_", referenced from:
      _umfdi_blas3_update in libumfpack.a(umf_di_blas3_update.o)
  "_dgemv_", referenced from:
      _umfdi_local_search in libumfpack.a(umf_di_local_search.o)
  "_dger_", referenced from:
      _umfdi_blas3_update in libumfpack.a(umf_di_blas3_update.o)
  "_dtrsm_", referenced from:
      _umfdi_blas3_update in libumfpack.a(umf_di_blas3_update.o)
  "_dtrsv_", referenced from:
      _umfdi_local_search in libumfpack.a(umf_di_local_search.o)
  "_main", referenced from:
      start in crt1.10.5.o
     (maybe you meant: _luaH_mainposition)
  "_zgemm_", referenced from:
      _umfzi_blas3_update in libumfpack.a(umf_zi_blas3_update.o)
  "_zgemv_", referenced from:
      _umfzi_local_search in libumfpack.a(umf_zi_local_search.o)
  "_zgeru_", referenced from:
      _umfzi_blas3_update in libumfpack.a(umf_zi_blas3_update.o)
  "_ztrsm_", referenced from:
      _umfzi_blas3_update in libumfpack.a(umf_zi_blas3_update.o)
  "_ztrsv_", referenced from:
      _umfzi_local_search in libumfpack.a(umf_zi_local_search.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

    mex: link of ' "meshmex.mexmaci64"' failed.

make[2]: *** [meshmex.] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

person user2924321    schedule 27.10.2013    source источник
comment
Тот факт, что _main не определен, заставляет меня думать, что с вашей командой связи что-то серьезно не так, и проблема, вероятно, не связана с LAPACK или BLAS. Какая команда полной ссылки вызвала ошибку?   -  person Stephen Canon    schedule 29.10.2013


Ответы (1)


Строка #include будет находиться в одном или нескольких исходных файлах, в зависимости от того, какие из них используют API из среды Accelerate. Вы получаете ошибки компиляции? Если нет, то нет необходимости добавлять такую ​​строку включения. Если да, то вам нужно добавить его в начало любого файла, в котором возникают ошибки, возникающие из-за отсутствия этих объявлений.

person Ken Thomases    schedule 27.10.2013
comment
Я получаю ошибки с неопределенными символами, потому что (я думаю) библиотека lapack загружена неправильно - person user2924321; 27.10.2013
comment
Отредактируйте свой вопрос, чтобы показать ошибки, которые вы получаете, дословно. - person Ken Thomases; 27.10.2013