首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

rethinkdb:加载共享库时出错: libprotobuf.so.17:无法打开共享目标文件:没有这样的文件或目录

问题概述

当你在尝试运行 RethinkDB 时,可能会遇到一个错误提示:“加载共享库时出错: libprotobuf.so.17:无法打开共享目标文件:没有这样的文件或目录”。这个错误通常是由于缺少 libprotobuf.so.17 这个共享库文件导致的。

基础概念

共享库(Shared Library):共享库是一种包含可由多个程序同时使用的代码和数据的库。在 Linux 系统中,共享库通常以 .so 结尾。

Protocol Buffers(protobuf):Protocol Buffers 是 Google 开发的一种数据序列化协议,用于结构化数据的序列化和反序列化。libprotobuf.so.17 是 protobuf 库的一个版本。

原因分析

这个错误的原因通常是系统中没有安装 libprotobuf.so.17 或者该库的路径没有正确配置。

解决方法

1. 安装 protobuf 库

你可以使用包管理器来安装 protobuf 库。以下是一些常见的包管理器命令:

  • Debian/Ubuntu:
  • Debian/Ubuntu:
  • CentOS/RHEL:
  • CentOS/RHEL:
  • Fedora:
  • Fedora:

2. 检查库路径

如果库已经安装,但仍然出现错误,可能是因为库路径没有正确配置。你可以使用 ldconfig 命令来更新库路径:

代码语言:txt
复制
sudo ldconfig

3. 手动创建符号链接

如果系统中存在其他版本的 libprotobuf.so,你可以手动创建一个指向正确版本的符号链接:

代码语言:txt
复制
sudo ln -s /path/to/libprotobuf.so.17 /usr/lib/libprotobuf.so.17

请确保 /path/to/libprotobuf.so.17 是实际的库文件路径。

应用场景

RethinkDB 是一个分布式数据库系统,广泛用于实时应用和大数据处理。确保所有依赖库都正确安装和配置是运行 RethinkDB 的前提条件。

参考链接

通过以上步骤,你应该能够解决 libprotobuf.so.17 缺失的问题,并成功运行 RethinkDB。

相关搜索:./test:加载共享库时出错: libcpprest.so.2.8:无法打开共享目标文件:没有这样的文件或目录加载共享库时出错,没有这样的文件或目录加载共享库时出错: libPocoNet.so.60:无法打开共享对象文件:没有这样的文件或目录QBS .../install-root/MyProject:加载共享库时出错: foobar.so:无法打开共享目标文件:没有这样的文件或目录加载共享库时出错: libgtk-3.so.0:无法打开共享对象文件:没有这样的文件或目录正在获取“加载共享库时出错: libSDL2_mixer-2.0.so.0:无法打开共享目标文件:没有这样的文件或目录加载共享库时出现Gource命令错误:?:无法打开共享对象文件:没有这样的文件或目录../main:加载共享库时出错: libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或目录获取cp:加载共享库时出错: libc.so.6:无法打开共享目标文件:没有此类文件或目录错误加载共享库时出错: libpq.so.5:无法打开共享对象文件:运行rust app时没有这样的文件或目录ffmpeg:加载共享库时出错: libmp3lame.so.0:无法打开共享对象文件:没有这样的文件或目录节点:加载共享库时出错:libitui18n.so.62:无法打开共享对象文件:没有这样的文件或目录paraview:加载共享库时出错: libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录mongosql无法在Red Hat 8上启动:“加载共享库时出错: libssl.so.10:无法打开共享目标文件:没有这样的文件或目录”Tensorflow共享库错误;ImportError: libcuda.so.1:无法打开共享目标文件:没有这样的文件或目录加载共享库时出错: libhdf5.so.101:无法打开共享目标文件加载共享库时出现Linux错误:无法打开共享对象文件:没有此类文件或目录如何解决;tesseract:加载共享库时出错: libpng12.so.0:无法打开共享对象文件:没有这样的文件或目录?ImportError: libGL.so.1:无法打开共享目标文件:没有这样的文件或目录无法打开共享对象文件: 没有那个文件或目录
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【一站式解惑】Linux中.a、.so和.o文件以及-I,-L,LIBRARY_PATH,LD_LIBRARY_PATH等

所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运行。 lib,dll,exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。...(4)安装: 拷贝共享库文件到指定的标准的目录,然后运行ldconfig。如果没有权限这样做,那么就只好通过修改环境变量来实现这些函数库的使用了。方法不再说了,很复杂。.../hello 会提示出错,因为虽然连接时用的是当前目录的动态库,但是运行时,是到/usr/lib中找库文件的,将文件libmyhello.so复制到目录/usr/lib中就OK了。...那么在产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。...通常这样做就可以解决库无法链接的问题了。 静态库链接时搜索路径顺序 1. ld(GNU linker)会去找GCC命令中的参数-L。

5.5K52

ATX2 iOS设备管理平台搭建

下载项目文件:https://github.com/openatx/atxserver2 打开命令终端进入该项目目录 执行如下命令即可启动服务 docker-compose up 源码部署 1.启动...(本机ip也可以):4000,登录之后就可以顺利的看到设备列表页了,由于还没有接入设备所以设备列表为空。.../Scripts/bootstrap.sh 执行完成后,使用Xcode直接双击打开WebDriverAgent.xcodeproj这个文件。...3.如果是免费版的个人证书,还需要修改下WebDriverAgent的BundleID,随便加点后缀,只要不跟其他人的重名就好。 ? 运行测试 1.菜单栏选择目标设备 ?...42AE-A4A2xxxxxx", "status" : 1 } 命令连接WDA Xcode虽然可以使设备连接WDA,但是每次只能连接一台设备,而且该软件运行占用内存比较大,所以我们需要使用命令终端来运行WDA,这样方便我们进行自动化或持续集成

2.1K20
  • 深入浅出链接库 | 静态库与动态库

    链接库就是指将库文件编译后打包为一个二进制文件,这些二进制文件会在程序调用的时候加载到内存中。实际上,一个或多个源文件编译为目标文件后,这个文件中所引用的外部的符号需要通过链接来找到这部分缺失的地址。...动态库是在运行时加载到内存的共享库段,这样,如果很多程序都要用到静态库的时候,就会节省大量内存,因为它不像静态库那样加载到代码段,而是是在运行时载入内存的共享库段,当多个程序要用到同一个动态库时,所有程序可以共享这个共享库段的指令和数据...动态链接的实现是这样的,在编译时首先由静态链接器将所有的目标文件链接为一个可执行文件,等到程序运行时会将要用到的动态库加载到内存的共享库段,由动态链接器完成可执行文件和动态库文件的链接工作,可以理解为按需载入内存...GCC 编译器在生成可执行文件时,默认会优先使用动态链接库完成链接,如果当前系统环境中没有程序文件所需要的动态链接库,GCC 便会选择静态链接库进行静态链接。如果两种库文件都没有找到,则链接失败。.../header/ (2)“加载共享库出错”的解决方法 这个是时候,虽然我们已经生成了可执行文件,但是当我们运行可执行文件的时候,可能会出现这样的错误 我们可以通过命令 ldd 来查看一下可执行文件的链接情况

    62510

    Linux库详解

    库文件无法直接执行,因为它的源代码中没有入口主函数,而只是一些函数模块的定义和实现,所以无法直接执行。...换句话说,它只是没有任何版本号的soname Linux系统上这样做的目的主要是系统中允许不同版本的库文件共存,一般在命名库文件的时候通常与soname相同 如何装载共享库 ldconfig命令,在Linux...这样装载器就会首先搜索该变量的目录,然后搜索默认目录。 传参数,如果您不想设置LD_LIBRARY_PATH环境变量,在 Linux 上可以直接调用程序加载器并向其传递参数。...而不是像共享库一样在程序启动的时候加载。在Linux中,动态库的文件格式跟共享库没有区别,主要区别在于共享库是程序启动时加载,而动态加载库是运行的过程中加载。...有了动态库,程序的升级会相对比较简单,只需要替换动态库的文件,而不需要替换可执行文件 动态加载库 动态库的文件格式跟共享库没有区别,主要区别在于共享库是程序启动时加载,而动态加载库是运行的过程中加载。

    2K40

    CSAPP---第七章-链接

    ,这是对内存的极大浪费 共享库是一个目标模块,在运行或加载时,可以加载到任意的内存地址,并和一个在内存中的程序链接起来。...而由于是共享的,每个动态链接库代码段的内容是完全一样的(代码段可以通过内存映射完成多进程间共享),这样只能在数据段做手脚了,因为数据段不是只读的,无法共享。...共享目标文件(共享库)是在运行时由动态链接器链接和加载的,或者隐含地在调用程序被加载和开始执行时,或者根据需要在程序调用 dlopen 库的函数时。...链接器还可能生成部分链接的可执行目标文件,这样的文件中有对定义在共享库中的例程和数据的未解析的引用。...在加载时,加载器将部分链接的可执行文件映射到内存,然后调用动态链接器,它通过加载共享库和重定位程序中的引用来完成链接任务。

    92110

    Linux共享库、静态库、动态库详解

    1、静态函数库,是在程序执行前就加入到目标程序中去了 ; 2、动态函数库同共享函数库是一个东西(在linux上叫共享对象库, 文件后缀是.so ,windows上叫动态加载函数库, 文件后缀是.dll)...文件系统中函数库文件的位置 共享函数库文件必须放在一些特定的目录里,这样通过系统的环境变量设置,应用程序才能正确的使用这些函数库。...共享库是程序启动时加载的库。...此预加载文件通常用于紧急补丁; 分发通常不会在交付时包含这样的文件。 在程序启动时搜索所有这些目录将是非常低效的,因此实际使用了缓存安排。...生成的库将工作,但这些操作使调试器大多没有用。 使用-fPIC或-fpic生成代码。是否使用-fPIC或-fpic生成代码是依赖于目标的。

    8.9K11

    VB6 开发生成的exe文件无法访问局域网网络映射盘或共享目录中的文件或文件夹的解决办法

    VB6 开发生成的exe文件无法访问局域网网络映射盘或共享目录中的文件或文件夹的解决办法(网上几乎找不到解决这个问题的答案,特别是解决办法中的注意事项。...折腾了好几天才解决)一、问题症状在Win10 或 Win11 64位 环境 使用VB6生成的exe访问,局域网网络映射盘或共享目录中的文件或文件夹,发现出现 文件名或文件与出错或错误 : 76 path...not found中错误 :52 bad file name or number或这样的错误提示: Run-time error '438': Object doesn't support this...:添加DWORD值 :EnableLinkedConnections,设置值为1这样就可以了 (需要重启一下电脑)注意事项:千万注意,生成的exe文件名不能为Update.exe ,系统会自动在这个exe...执行文件的图标加上盾牌,然后这个执行文件 ,就无法访问局域网的共享目录文件了。

    10710

    LD_LIBRARY_PATH和LIBRARY_PATH的区别

    目标文件(Executable and Linkable Format) 可重定位(Relocatable)文件:由编译器和汇编器生成,可以与其他可重定位目标文件合并创建一个可执行或共享的目标文件; 共享...(Shared)目标文件:一类特殊的可重定位目标文件,可以在链接(静态共享库)时加入目标文件或加载时或运行时(动态共享库)被动态的加载到内存并执行; 可执行(Executable)文件:由链接器生成,可以直接通过加载器加载到内存中充当进程执行的文件...静态库的优点在于: 程序员不需要显式的指定所有需要链接的目标模块,因为指定是一个耗时且容易出错的过程; 链接时,连接程序只从静态库中拷贝被程序引用的目标模块,这样就减小了可执行文件在磁盘和内存中的大小。...动态链接(加载、运行时) 在此种方式下,函数的定义在动态链接库或共享对象的目标文件中。在编译的链接阶段,动态链接库只提供符号表和其他少量信息用于保证所有符号引用都有定义,保证编译顺利通过。...,经常会需要使用某个或某些动态链接库,为了保证程序的可移植性,可以先将这些编译好的动态链接库放在自己指定的目录下,然后按照上述方式将这些目录加入到LD_LIBRARY_PATH环境变量中,这样自己的程序就可以动态链接后加载库文件运行了

    1.3K40

    如何使用aDLL自动识别DLL劫持漏洞

    主要是因为Windows的资源共享机制。为了尽可能多地安排资源共享,微软建议多个应用程序共享的任何模块应该放在Windows的系统目录中,如kernel32.dll,这样能够方便找到。...但是随着时间的推移,安装程序会用旧文件或者未向后兼容的新文件来替换系统目录下的文件,这样会使一些其他的应用程序无法正确执行,因此,微软改变了策略,建议应用程序将所有文件放到自己的目录中去,而不要去碰系统目录下的任何东西...为了提供这样的功能,在Window2000开始,微软加了一个特性,强制操作系统的加载程序首先从应用程序目录中加载模块,只有当加载程序无法在应用程序目录中找到文件,才搜索其他目录。...我们建议广大用户使用版本架构(32位或64位)对应的版本来分析目标可执行文件。...aDLL将会搜索嵌入在二进制文件中的清单列表,如果清单列表作为外部文件存在,aDLL将无法找到该清单列表。 -w:定义在运行时搜索加载的DLL时可执行进程保持打开状态的秒数。默认时间为20秒。

    1.5K20

    相册适配 Android 11 绕的那些弯路

    在搭载 Android 9(API 级别 28)或更低版本的设备上,只要其他应用具有相应的存储权限,任何应用都可以访问外部存储空间中的应用专属文件。...启用分区存储后,应用将无法访问属于其他应用的应用专属目录。...、请求 MANAGE_EXTERNAL_STORAGE 权限 这是一个有意思的权限,官方是这样说的 绝大多数需要共享存储空间访问权限的应用都可以遵循共享媒体文件和共享非媒体文件方面的最佳做法。...的库时,无法使用 File Api,造成了很多困难。...,确实找到了一小段不起眼的文字 使用直接文件路径和原生库访问文件 为了帮助您的应用更顺畅地使用第三方媒体库,Android 11 允许您使用除 MediaStore API 之外的 API 通过直接文件路径访问共享存储空间中的媒体文件

    1.7K30

    Linux系统内核笔记

    , 而共享库只是在调用模块中嵌入调用代码的在库的相对位置的地址,当执行程序时, 共享库的程序会一起加载到内存中,当执行到调用共享中代码的指令时跳转到共共享中 执行,执行完毕后在跳转回来 占用空间小...-L路径 -lmath 3、运行 在编译时已经把函数的二进制复制到可执行文件中了,在执行时不再需要静态库文件 七、共享库 1、创建共享库 编译源代码:vi .c/.h 编译出位置无关目标文件...-L路径 -lmath 3、运行 在使用共享库时,调用者只是记录了代码在库的位置,因此在执行时需要共享库同时 被加载。...或路径 flag: RYLD_LAZY 使用时才加载 RTLD_NOW 立即加载 返回值:共享库的句柄(类似文件指针) 2、获取标识符地址 void *dlsym(void *handle...:减肥,去除掉目标文件、可执行文件、静态库和共享库中的符号列表、调试信息。

    1.6K20

    【Linux】动静态库(超详细)

    但是可执行程序执行必须要有对应的实现,所以编译时,由gcc默认帮我们链接了对应的库。 ldd 的作用是帮我们找可执行程序所依赖的库 ldd是一个命令,它用于打印程序或库文件所依赖的共享库列表。...缺点 运行时依赖:如果缺少所需的动态库,程序无法运行。 加载时间:在启动时需要加载库,可能会稍微增加启动时间。 3.3 使用场景 静态库 适用于不需要频繁更新库的场景。...对于嵌入式系统或需要快速启动的应用,静态库也是一个不错的选择。 动态库 适合需要频繁更新和维护的应用程序。 多个应用共享相同库时,动态库能有效节省资源。 4....这样,当多个程序使用同一个共享库时,它们都可以直接使用共享库中的代码,而不需要对其进行重新定位。 这样可以节省大量的 RAM,因为共享库的代码节只需加载到内存一次,然后映射到许多进程的虚拟内存中。...这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的 如果不加 -fPIC 选项,则加载 .so 文件的代码段时,代码段引用的数据对象需要重定位,重定位会修改代码段的内容,这就造成每个使用这个

    6300

    Docker Compose进行集成测试

    但最终你的系统看起来是这样的:待测试端点是 /create,它做的全部事情是在数据库中存储一些数据。看起来非常简单。...(数据库中存在数据),但也带来非常严重的副作用,因为本地开发数据库与测试数据库共享。...还意味着如果不销毁容器,那么可以进入容器内部,对数据库运行查询,进行调试。下面是一个示例 Docker Compose 文件,它只启动一个临时数据库(RethinkDB)。...我们还将获取测试容器的日志,并且将它们打印出来,以便在测试失败时提供上下文。下面是一个(极其冗长的)脚本,它完成我们在本地或 CI 中运行集成测试所需的一切。...每当我在 CI 中遇到失败时,同样的 Bug 肯定可以在本地复现。我遇到的最大问题是,因为应用程序没有完全启动,而导致的测试失败。

    27020

    Linux动态链接库.so文件的创建与使用

    1、静态函数库,是在程序执行前就加入到目标程序中去了; 2、共享函数库,则是在程序启动的时候加载到程序中,它可以被不同的程序共享;动态加载函数库则可以在程序运行的任何时候动态的加载。...创建一个静态函数库文件,或者往一个已经存在地静态函数库文件添加新的目标代码,可以用下面的命令:          ar rcs my_library.a file1.o file2.o  这个例子中是把目标代码...文件系统中函数库文件的位置 共享函数库文件必须放在一些特定的目录里,这样通过系统的环境变量设置,应用程序才能正确的使用这些函数库。...虽然使用了这个参数获得的函数库仍然可以使用,但是这使得调试程序几乎没有用,无法跟踪调试。 使用-fPIC来产生代码,而不是-fpic。...它们特别适合在函数中加载一些模块和plugin扩展模块的场合,因为它可以在当程序需要某个plugin模块时才动态的加载。

    9.4K51

    【Linux】动静态库

    这样就形成了一个静态库,但是这样我们还是用不了,我们还需要将库安装到系统当中: 首先我们需要将头文件拷贝到usr目录下的include当中,然后将静态库拷贝到lib64这个文件当中: 注意:...如果库文件不符合上述命名规则,例如文件名是 mylib.a 或 custom_library.so,gcc 无法识别这些文件。...-l选项: 第三种方法:当静态库和头文件都没有放在系统文件当中时 先将include的中的头文件删除了 将头文件和静态库分别放在这两个目录当中 然后我们编译main.c: 在使用...这几个分别是库的名字,和定位库,还有定位头文件。 动态库 动态库是一种在程序运行时加载的库文件,相比静态库,它可以实现代码共享和更小的程序体积。...动态加载: 程序运行时才会加载动态库,大幅减少可执行文件的大小。 共享性: 同一动态库可以被多个程序同时使用,节省内存资源。

    5610

    Windows事件ID大全

    31 连到系统上的设备没有发挥作用。 32 另一个程序正在使用此文件,进程无法访问。 33 另一个程序已锁定文件的一部分,进程无法访问。 36 用来共享的打开文件过多。 38 已到文件结尾。...110 系统无法打开指定的设备或文件。 111 文件名太长。 112 磁盘空间不足。 113 没有更多的内部文件标识符。 114 目标内部文件标识符不正确。...128 没有等候的子进程。 130 试图使用操作(而非原始磁盘 I/O)的已打开磁盘分区的文件句柄。 131 试图将文件指针移到文件开头之前。 132 无法在指定的设备或文件上设置文件指针。...149 企图将驱动器合并或替代为驱动器上目录是上一个替代的目标的驱动器。 150 系统跟踪信息未在 CONFIG.SYS 文件中指定,或不允许跟踪。...170 请求的资源在使用中。 173 对于提供取消区域进行锁定的请求已完成。 174 文件系统不支持锁定类型的最小单元更改。 180 系统检测出错误的段号。 183 当文件已存在时,无法创建该文件。

    18.3K62

    程序生成之编译、链接、加载浅析

    目标文件 生成的目标文件一般为下列三种: 可重定位(Relocatable)目标文件:由编译器和汇编器生成,可与其他可重定位目标文件合并,创建一个可执行或共享的目标文件; 共享(Shared)目标文件:...一种特殊的可重定位目标文件,可以在链接(静态共享库)时加入目标文件,也可以在加载或运行时(动态共享库)动态的被加载到内存并执行; 可执行(Executable)目标文件:由链接器生成,可直接通过加载器加载到内存中...相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码中,只有程序执行到相关函数时,才调用该动态函数库里的相应函数,因此,动态函数库产生的可执行文件较小。...链接器将函数的代码从其所在地(目标文件或静态链接库中)拷贝到最终的可执行程序中。这样该程序在被执行时这些代码将被装入到该进程的虚拟地址空间中。...(2) 动态链接 动态链接指链接阶段仅仅加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中。 在此种方式下,函数的定义在动态链接库或共享对象的目标文件中。

    1.2K60

    Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

    是要创建软链接指向的目标文件或目录的路径。...除非系统自己给目录建立硬链接:.和.. 2.动态库和静态库 1.1回顾 ldd是一个Linux命令,用于打印出一个可执行文件或共享库的动态链接依赖关系。...我们在打包时也是使用功能ar 现在我们使用: shared: 当我们在编译或链接一个库时,我们通常会指定它应该是一个共享库。这意味着该库的文件格式是为了与其他程序共享而设计的。...这是共享库所需要的,因为共享库可以在程序的运行时被加载到任何内存地址。使用-fPIC选项(在GCC中)告诉编译器生成这样的代码(产生与位置无关码)。...这样,即使程序还没有被加载到内存中,各个符号仍然具有自己的地址。 此外,可执行程序在磁盘上已经被划分为不同的区域,这些区域通常包括代码段、数据段、符号表等。

    21610

    c++动态库和静态库的区别_静态库里面包含动态库

    打开工程“属性面板”è”配置属性”è “C/C++”è” 常规”,在“附加包含目录”属性值中,键入StaticMath.h 头文件所在目录的路径或浏览至该目录。 编译运行OK。...动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。...l 针对于实际库文件,每个共享库都有个特殊的名字“soname”。在程序启动后,程序通过这个名字来告诉动态加载器该载入哪个共享库。 l 在文件系统中,soname仅是一个链接到实际动态库的链接。...打开工程“属性面板”è”配置属性”è “C/C++”è” 常规”,在“附加包含目录”属性值中,键入DynamicMath.h 头文件所在目录的路径或浏览至该目录。 编译运行OK。...l const char *dlerror(void):当动态链接库操作函数执行失败时,dlerror可以返回出错信息,返回值为NULL时表示操作函数执行成功。

    1.9K30

    静态链接库和动态链接库的区别

    动态库而言:某个程序在运行中要调用某个动态链接库函数的时候,操作系统首先会查看所有正在运行的程序,看在内存里是否已有此库函数的拷贝了。如果有,则让其共享那一个拷贝;只有没有才链接载入。...只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用gcc命令生成目标文件时指明静态库名(是mymath 而不是libmymath.a ),gcc将会从静态库中将公用函数连接到目标文件中...动态库的搜索路径搜索的先后顺序是:1.编译目标代码时指定的动态库搜索路径;2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;3.配置文件/etc/ld.so.conf中指定的动态库搜索路径...); //my_fini为自定义的析构函数名在编译共享库时,不能使用"-nonstartfiles"或"-nostdlib"选项,否则构建与析构函数将不能正常执行(除非你采取一定措施)。...在使用时应包含的头文件Winbase.h(include Windows.h)dlfcn.h5、特殊情况我们回过头看看,发现使用静态库和隐式方式使用动态库时编译成目标程序使用的gcc命令完全一样,那当静态库和动态库同名时

    8.4K21
    领券