我有一个名为libfoo.dylib的库。问题在以下命令中说明:
$ install_name_tool -id "@rpath/libfoo.dylib" libfoo.dylib $ install_name_tool -add_rpath "@executable_path/" libfoo.dylib $ gcc -o foo foo.c -lfoo $ ./foo #<==== 我希望这个命令能够运行 dyld: Library not loaded: @rpath/libfoo.dylib Referenced from: ~/./foo Reason: image not found $ install_name_tool -add_rpath "@executable_path/" foo #<=== 我不想在这里指定查找库的位置 $ ./foo Hello World如何实现目标,即不必在可执行文件编译时指定库的位置?
-headerpad_max_install_names
编译和链接libfoo.dylib
,以确保有足够的空间添加你正在尝试添加的名称。一旦libfoo.dylib
有了它的安装名称,那么无论程序的位置在哪里,foo
都将能够链接到它。 - jww