プロジェクトを正しくリンクするのに問題があります。プロジェクトはCMAKEで構築されています。リンクは問題ないようですが、実行時にエラーがスローされます。
リンクに使用されたコマンドは次のとおりです。
$ /usr/bin/clang -Wl,-search_paths_first -Wl,-headerpad_max_install_names \
CMakeFiles/project.dir/src/conf.c.o CMakeFiles/project.dir/src/tun-compat.c.o \
CMakeFiles/project.dir/src/compress.c.o CMakeFiles/project.dir/src/mc.c.o \
CMakeFiles/project.dir/src/hexdump.c.o CMakeFiles/project.dir/src/server.c.o \
CMakeFiles/project.dir/sys/unix/log.c.o CMakeFiles/project.dir/sys/unix/imsg.c.o \
CMakeFiles/project.dir/ sys/unix/imsg-buffer.c.o CMakeFiles/project.dir/sys/unix/toto.c.o \
CMakeFiles/project.dir/sys/unix/toto.c.o CMakeFiles/project.dir/sys/unix/util.c.o \
CMakeFiles/project.dir/sys/unix/conf.c.o CMakeFiles/project.dir/sys/unix/tntsocket.c.o \
-o bin/project/opt/local/lib/libevent_openssl.dylib /opt/local/lib/libevent_core.dylib \
/usr/lib/libz.dylib /opt/local/lib/libyajl.dylib /opt/local/lib/libtapcfg.dylib
私が得るエラー:
$ ./bin/project
dyld: Library not loaded: build/libtapcfg.dylib
Referenced from: /Users/Antoine/project/./bin/project
Reason: image not found
zsh: trace trap ./bin/project
追加情報:
$ dyldinfo -dylibs bin/projectattributes
dependent dylibs
/opt/local/lib/libevent_openssl-2.0.5.dylib
/opt/local/lib/libevent_core-2.0.5.dylib
/usr/lib/libz.1.dylib
/opt/local/lib/libyajl.2.dylib
build/libtapcfg.dylib
/usr/lib/libSystem.B.dylib
それは私には黒魔術のように見えます。リンカはシンボルを見つけることができますが、リンクコマンドでの処理方法に違いが見られない場合でも、ライブラリのパスを変更することになります...
libの場所は/opt/local/lib/libtapcfg.dylibです
$ ls -lhF /opt/local/lib/libtapcfg.dylib
-rwxr-xr-x 1 root admin 20K 14 jui 18:05 /opt/local/lib/libtapcfg.dylib*
問題は、リンクしているライブラリに起因している可能性がありますか?