dyld: библиотека не загружена: @rpath/libopenblas.dylib
Когда я делаю свой файл, у меня есть эта ошибка:
dyld: библиотека не загружена: @rpath/libopenblas.dylib Ссылка на: /Users/danyunhe2/reinf_learning2/cpp_original/./navig_test
Причина: изображение не найдено Ловушка отмены: 6
Я старался ln -sf <original path> /usr/local/lib
но это не сработало.
Из инфо о варке я получил:
openblas: stable 0.3.5 (bottled), HEAD [keg-only]
Optimized BLAS library
https://www.openblas.net/
/usr/local/Cellar/openblas/0.3.5 (22 files, 120.7MB)
Poured from bottle on 2019-02-18 at 01:27:14
From: https://github.com/Homebrew/homebrew- core/blob/master/Formula/openblas.rb
==> Dependencies
Required: gcc ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
openblas is keg-only, which means it was not symlinked into /usr/local,
because macOS provides BLAS and LAPACK in the Accelerate framework.
For compilers to find openblas you may need to set:
export LDFLAGS="-L/usr/local/opt/openblas/lib"
export CPPFLAGS="-I/usr/local/opt/openblas/include"
Он сказал мне, чтобы установить компилятор с LDFLAGS и CPPFLAGS. Я пытался, но это не сработало. Кто-нибудь знает, как с этим бороться?
У меня есть мой config.mk как:
# C++ compiler
cxx=g++-7 -fopenmp
# Compilation flags
cflags=-Wall -ansi -pedantic -O3
# BLAS/LAPACK flags for linear algebra
lp_lflags=-framework Accelerate
# FFTW flags (installed via Homebrew)
fftw_iflags=
fftw_lflags=-lfftw3
# libpng flags (installed via Homebrew)
png_iflags=
png_lflags=-lpng
и Makefile:
# Load the common configuration file
include config.mk
iflags=`gsl-config --cflags`
lflags=`gsl-config --libs`
objs=navigate.o reinf_learn.o common.o
src=$(patsubst %.o,%.cc,$(objs))
execs=navig_test
all:
$(MAKE) executables
executables: $(execs)
depend: $(src)
$(cxx) $(iflags) -MM $(src) >Makefile.dep
-include Makefile.dep
navig_test: navig_test.cc $(objs)
$(cxx) $(cflags) $(iflags) -o $@ $^ $(lflags)
%.o: %.cc
$(cxx) $(cflags) $(iflags) -c $<
clean:
rm -f $(execs) $(objs)
.PHONY: clean all executables depend
1 ответ
На OSX это DYLD_LIBRARY_PATH
, который вы должны указать во время выполнения следующим образом:
export DYLD_LIBRARY_PATH=/usr/local/opt/openblas/lib
Тем не менее, пожалуйста, оцените предупреждение brew относительно ускорения. Это намного быстрее со многими операциями BLAS на всевозможных уровнях. Вы просто заставите программы работать медленнее.