我需要使用clang编译器创建和链接没有标准命名约定的共享库(例如libmylibrary **。so **)。我知道对于gcc我可以使用-l:
标志,但它不适用于clang。有人建议直接提供库并将rpath
选项传递给链接器:
clang++ main.cpp -Wl,rpath,. mylibrary
这种方法的问题在于,当我使用otool -L
检查二进制依赖项时,使用了mylibrary的完整绝对路径,由于安全原因,我无法使用该路径。我可以使用clang将库链接到相对路径吗?
你需要使用$ORIGIN
后缀:
clang++ main.cpp -Wl,rpath,\$ORIGIN mylibrary
这将告诉Clang在相对目录中查找mylibrary
。