如何使用clang链接共享库与非标准名称?

问题描述 投票:-1回答:1

我需要使用clang编译器创建和链接没有标准命名约定的共享库(例如libmylibrary **。so **)。我知道对于gcc我可以使用-l:标志,但它不适用于clang。有人建议直接提供库并将rpath选项传递给链接器:

clang++ main.cpp -Wl,rpath,. mylibrary

这种方法的问题在于,当我使用otool -L检查二进制依赖项时,使用了mylibrary的完整绝对路径,由于安全原因,我无法使用该路径。我可以使用clang将库链接到相对路径吗?

c++ clang shared-libraries dynamic-linking
1个回答
0
投票

你需要使用$ORIGIN后缀:

clang++ main.cpp -Wl,rpath,\$ORIGIN mylibrary

这将告诉Clang在相对目录中查找mylibrary

© www.soinside.com 2019 - 2024. All rights reserved.