在OS X上,ld
有一个方便的选项-weak-l
,就像-l
一样,但是库是“弱”的。如果在加载可执行文件时找不到lib,则在程序实际遇到无法找到的符号之前不会引发错误。
g++ -L. -weak-lfoo -o main.out main.cpp
Linux ld
命令中是否存在等效功能?我找不到了。
我正试图避免这个错误:
./main.out: error while loading shared libraries: libfoo.so: cannot open shared object file: No such file or directory
...即使libfoo.so
不可用。 (我碰巧知道 - 对于我的用例 - main.out
将不会调用任何需要libfoo.so
符号的函数。)
答案 0 :(得分:1)
afaik,没有这样的事情。
Debian-devel mailinglist中至少有一些(2017-03-22)的讨论表明,这将是一个很好的功能(因此暗示它不存在)