When you run a program, then it tells you that some lib file or dynamic lib file are not exist or not loaded or not, the reason may be you are missing some lib file.

For example, when you execute octave

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Referenced from: /usr/local/Cellar/octave/4.4.1_4/bin/octave-cli-4.4.1
Reason: image not found

The message told that libreadline.7.dylib file is not found.

There may be two reasons for this problem.

First, the library may be not installed in the system. To verify this, you should try to find some files that are related to the name libreadline, you can do

$updatedb$ locate libreadline

you may find several or many files associated with libreadline

/usr/lib/libreadline.dylib
/usr/local/Cellar/readline/8.0.4/lib/libreadline.dylib

After seeing this, the libreadline has already installed in our system. So, that’s not the first reason.

The second reason may be the version was not matched, the version 7 is required but this version is not exist, while version 8 is exist.

In this case, we can create a dynamic like from version 8 to version 7.

$cd /usr/local/opt/readline/lib$ ls
libhistory.8.0.dylib

there is a version 8 file in there. So we can create a soft link file from it.

ln -s  libreadline.8.0.dylib libreadline.7.dylib

then we can try our octave program again

\$ octave
GNU Octave, version 4.4.1
Copyright (C) 2018 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-apple-darwin18.2.0".

For information about changes from previous versions, type 'news'.