ldd -r -v如何向文件添加版本符号?

问题描述

Version information:
./VideoEncoderFilter.so:
    libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1
    libva.so.1 (VA_API_0.34.0) => not found
    libdl.so.2 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libdl.so.2
    libstdc++.so.6 (GLIBCXX_3.4.20) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (CXXABI_1.3.8) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (CXXABI_1.3.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (CXXABI_1.3) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6

我很好奇这个版本符号VA_API_0.34.0是如何添加到VideoEncoderFilter.so的。

如果我有一个foo.c,并且想创建一个版本符号FOO_API_0.34.0,该怎么办?

gcc -c -fPIC foo.c -o foo.o
gcc foo.o -shared -o libfoo.so

解决方法

GNU ld支持version scripts。如果要将版本#container添加到符号.conA { height: 100vh; display: flex; align-items: center; justify-content: space-between; }中,可以这样进行:

<section class="conA">
  <div id="container">
    <div id="heroText">
      <p>Lorem ipsum dolor sit amet</p>
      <div id="text">
        <div id="cursor"></div>
      </div>
    </div>
  </div>
  <div id="images"><img src="https://placehold.it/300x200"></div>
</section>

您可以使用FOO_API_0.34.0来验证符号是否存在:

foo

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...