腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
什么是"Windows不支持适当的动态链接?“
、
、
、
我已经阅读了Linux dlopen()和dlsym()的文档,它们分别打开动态库并在库中加载符号。 这些调用似乎相当于Windows的LoadLibrary()和GetProcAddress()。 我在这篇文章中读到"Windows不支持适当的动态链接“:。 Linux和Windows动态库调用不同的原因是什么? Linux上的动态库能够在可执行文件中加载符号,这是唯一的区别吗?但是这意味着可执行文件也是Linux上的库,因为dlopen()在动态库上运行。
浏览 2
提问于2017-02-02
得票数 0
回答已采纳
1
回答
动态链接器如何执行/proc/self/exe
、
、
、
在Linux上执行动态链接的可执行文件时,将调用动态链接器作为其解释器(在此中描述)。如果我理解正确的话,运行: $ ./dynamic_elf 将导致Linux执行: /lib64/ld-linux.so.2 ./dynamic_elf 我很难理解这将如何为/proc/self/exe工作。根据上面的逻辑,运行: $ /proc/self/exe 将导致Linux执行: /lib64/ld-linux.so.2 /proc/self/exe 现在,当动态链接器试图在/proc/self/exe加载精灵时,它是否会指向动态链接器本身,就像ld-linux.so.2现在是正在运行的可执行文件一样
浏览 6
提问于2020-05-07
得票数 2
回答已采纳
2
回答
什么是链接器,什么是动态链接中的加载程序?
、
、
CSAPP (3ed)在p733中说 7.9加载可执行对象文件要运行可执行对象file prog,我们可以将其名称键入到Linux的命令行: linux> ./prog,因为prog不对应于内置的shell命令,因此shell假定prog是可执行对象file,它通过调用一些内存驻留操作系统代码(称为the加载器)为我们运行。任何Linux程序都可以通过调用execve函数来调用加载程序,我们将在8.4.6节中详细描述该函数 在p736中:动态链接 7.10动态链接到共享库之后,我们将把它链接到图7.7中的示例程序: linux> gcc -o prog2l main2.c ./libv
浏览 0
提问于2020-09-27
得票数 -1
1
回答
``dlopen()‘通过调用动态链接器’`ld linux.so‘执行动态链接吗?
、
CSAPP说 Linux系统为动态链接器提供了一个简单的接口,允许应用程序在运行时加载和链接共享库。#包括 void *dlopen(const *filename,int标志);返回:指针来处理如果确定,如果错误为NULL dlopen()是否通过调用动态链接器ld-linux.so来执行动态链接? ld-linux.so是dlopen()调用来执行动态链接的动态链接器吗? 谢谢。
浏览 0
提问于2020-09-27
得票数 0
回答已采纳
1
回答
Linux内核如何动态地使用模块?
、
、
、
理解Linux内核说 内核在管理模块时有两个关键任务要执行。第一项任务是确保内核的其余部分能够到达模块的全局符号,例如其主函数的入口点。模块还必须知道内核和其他模块中符号的地址。因此,当一个模块被链接时,引用就会被一劳永逸地解析。第二个任务包括跟踪模块的使用情况,以便在另一个模块或内核的另一部分使用模块时不会卸载模块。一个简单的引用计数跟踪每个模块的使用情况。 任何共享库都可以动态链接(使用LD_LIBRARY_PATH)和动态加载(通过dlopen()、dlsym()和dlclose()),这是正确的吗? 模块是Linux内核的共享库吗? Linux内核如何动态地使用模块?是通过动态链接(使
浏览 0
提问于2018-10-17
得票数 0
回答已采纳
4
回答
Linux: C/C++标准库静态与动态链接
、
、
、
、
在任何操作系统上都可能静态或动态地编译C++/C标准库。在Windows上,我总是喜欢静态构建,因为它有助于避免在特定的Windows版本、版本和服务包上安装或未安装不同版本的库的"dll地狱“问题。静态链接使软件更易于移植,更少依赖最终用户对其操作系统所做的操作(我甚至看到了一些示例,当最终用户可以在system32中的一些dll上创建dll时,他无法解释为什么,或者当用户声称我的应用程序包含病毒,因为它试图从官方微软网站下载动态链接的先决条件时……)所以,在我的经验中,在Windows上静态链接通常比动态链接更好。然而,我对Linux并不熟悉,所以任何人都能分享他的经验吗?我的问题
浏览 4
提问于2014-02-19
得票数 6
回答已采纳
1
回答
如何像“`file`”所报告的那样动态链接动态链接器/加载程序本身?
、
、
、
考虑/bin/bash的共享对象依赖关系,它包括/lib64/ld-linux-x86-64.so.2 (动态链接器/加载器): ldd /bin/bash linux-vdso.so.1 (0x00007fffd0887000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000) libc.so.6 => /lib
浏览 0
提问于2019-09-23
得票数 15
回答已采纳
2
回答
等效于GNU LD的Solaris链接器--导出-动态标志
、
、
、
问题是:我们使用GNU构建Linux,使用Solaris ld构建solaris。GNU ld支持--export-dynamic标志,该标志: 在创建动态链接的可执行文件时,将所有符号添加到动态符号表中。动态符号表是在运行时从动态对象中可见的一组符号。 与使用solaris链接器的此标志等效的是什么?有等价物吗?
浏览 6
提问于2009-02-27
得票数 1
回答已采纳
4
回答
为什么要使用显式参数进行静态和动态链接
、
、
我主要在Windows上工作,最近我开始在Linux上工作。我有个疑问。我在Windows中使用Visual Studio作为IDE,在Linux中使用Makefile。 Windows中有两种类型库:静态库(.lib)和动态链接库(VC++)。这很明显(不是吗?)如果我链接lib文件,我使用静态链接,否则使用动态链接。 现在,当我使用g++编译器时,为什么我需要显式地提到-Bstatic/-static或Bdynamic/-dynamic标志。因为如果文件是.a文件,那么我必须使用静态-linking,如果文件是.so,则我使用动态链接。
浏览 3
提问于2012-12-24
得票数 3
回答已采纳
1
回答
Unix/Linux环境中的动态链接类型
、
、
、
在创建windows静态库时,我们只需创建一个应该包含在链接器路径中的.lib文件。 在创建windows共享库以及.dll时,我们还生成了一个.lib文件。这个lib文件包含由库公开的API的签名。 有两种使用此库的方法 我们可以直接引用项目中的库API,并在链接器属性中将路径添加到.lib文件中。有些人称它为静态链接动态库。 或者,我们可以在运行时显式加载动态库。在这种情况下,我们不需要为链接器指定lib文件路径。调用它动态链接的动态库。 我的问题是,对于Linux上的共享库,我们也有类似的东西吗?或者仅仅是静态库(.a)和共享库(.so)? 我知道如何使用gcc -l选项在linux上包
浏览 0
提问于2014-11-19
得票数 2
回答已采纳
1
回答
未定义的对`i2c_smbus_read_word_data的引用(int,无符号字符)
、
、
、
更新到Ubuntu18.04之后,我无法编译我的Qt应用程序。 发生下列错误: undefined reference to `i2c_smbus_read_word_data(int, unsigned char) 据我所知,i2c_smbus_read_word_data现在不是在linux/i2c-dev.h中定义的,而是在动态库/usr/lib/x86_64-linux-gnu/libi2c.so中定义的。 我尝试动态链接: -li2c 静态地: /usr/lib/x86_64-linux-gnu/libi2c.a 但我还是犯了错误 UPD: libi2c-dev、libi2c0和i2
浏览 0
提问于2018-05-03
得票数 9
回答已采纳
1
回答
为什么ld需要/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2,而它的默认动态链接器是/lib64/ld-linux-x86-64.so.2?
、
、
在x86-64目标Debian中,大多数程序都是通过/lib64/ld-linux-x86-64.so.2链接到共享对象的。在/lib/x86_64-linux-gnu/中也有一个,所以我删除了它,因为我认为它是不必要的: rm /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 然后测试: gcc test.c 它显示如下: /usr/bin/ld: cannot find /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 inside / collect2: error: ld returned 1 exit s
浏览 6
提问于2021-07-09
得票数 0
1
回答
动态共享库--用于linux
、
我只有一个关于Linux共享库文件的问题。 我看到了许多与LinuxO.S 的动态共享库相关的链接 在上面的链接中提到了--包括库的文件: ctest.h 现在在LINUX中使用libdl构建函数-- dlopen,dlsym,dlclose。 我们真的需要为动态图书馆包括原型文件ctest.h吗? 请对以上职位提出一些建议。
浏览 7
提问于2012-12-02
得票数 2
回答已采纳
1
回答
Ubuntu触摸Nexus 7:为什么没有ld-linux.so*?
简短版本: 安装了Ubuntu,并注意到没有/lib/ld-linux.so.3动态链接器(符号链接或其他链接)。我第一次看到这个在Linux安装中丢失了。有什么特别的原因吗? 长篇版本: 我刚刚在第一代Nexus 7上安装了Ubuntu (13.10,稳定),我想在上面尝试一些针对ARM的编译。 我在我的Ubuntu桌面上安装了gcc-arm-linux-gnueabi包(顺便提一句),并在C中编译了一个简单的"hello world“,然后将它复制到Nexus,ssh'd in,并运行可执行文件(nexustest)。 -bash: ./nexustest: No such
浏览 0
提问于2013-10-23
得票数 3
回答已采纳
1
回答
在JNI中链接静态库
、
我是JNI的新手。 我想将一个静态库(比如libFoo.a)链接到我正在创建的动态库中。这个动态库是从我的Java类调用的。 这个是可能的吗?如果是这样的话,是怎么做的? gcc -I$JAVA_DIR/include -I$JAVA_DIR/include/linux -o libXY.so -shared jni/xy.c libFoo.a
浏览 0
提问于2013-04-21
得票数 1
回答已采纳
1
回答
什么时候在iOS中使用动态链接库?在iOS中使用动态库的优点是什么?
、
、
、
对于动态链接库、窗口中的和Linux与iOS之间的优势之间的区别,我感到很奇怪。 下面的⬇️句子是为了证明我为什么感到奇怪。 我了解到库可以分为静态库和动态库。 使用动态库的优点是允许其他应用程序使用相同的动态库( in Window,.dll file),这样可以减少每个应用程序的内存使用量,并且可以更容易地重新分发动态库而不是重新分发应用程序。实际上,在使用一些应用程序时,我可以体验到“没有XXX.dll文件”。 在Xcode中,当创建新项目时,我们可以选择框架和framework & library中的静态库。在创建项目后,我们可以选择如何成为Mach-O型的“可执行、动态库、静
浏览 4
提问于2021-04-21
得票数 2
回答已采纳
1
回答
我们可以在窗口上使用.so文件吗?
、
、
、
我需要在windows和linux平台上为我的c++代码库动态创建和链接库。我知道DLL格式适用于windows,而.so则用于linux平台。但是我读到.so也可以在windows平台上链接。我的问题是,我能否创建一个通用动态库(.so)来在windows和linux上运行我的应用程序?如果是,怎么做?
浏览 3
提问于2016-01-18
得票数 1
回答已采纳
2
回答
静态库链接两次
我有以下设置: 静态库 链接到(1.)的动态库。 链接到(1.)的可执行文件。和(2.) 来自from静态库的代码现在被复制并呈现在动态库和可执行文件中。 问题: 数据(全局变量、静态类成员)是否也重复,可执行文件和dll是否看到相同的数据? Linux和Windows之间有什么区别吗? 你怎么解决这个问题? 编辑: 谢谢你的回答,我现在可以准确地解释我的情况了。 静态库没有导出/导入标志。动态图书馆有自己的符号导出。 Windows: 动态库有静态库的text+data段的副本。可执行程序不知道,动态库已经链接了静态库,因为静态库符号的非从外部可见。 Linux: 动态库
浏览 6
提问于2015-07-03
得票数 9
回答已采纳
2
回答
当连接到动态共享库时,ld会做什么?
、
、
、
当将应用程序与动态共享库链接时,如 gcc -o myprog myprog.o -lmylib 我知道链接器(我的Linux上的ld)使用-l选项在生成的myprog可执行文件中存储库的名称(在本例中是mylib),这个库将在加载和链接时使用(如果忽略惰性动态链接,程序将在何时启动)。我想知道ld对动态共享库所执行的其他任务(我只是指编译时完成的静态链接步骤)? ld必须检查所提供的动态共享库中是否存在未定义的符号。 还有其他的东西吗? 此外,我将对您使用的关于ELF格式和动态链接和加载过程的指针(书籍、在线文档)感兴趣。
浏览 2
提问于2013-11-01
得票数 3
回答已采纳
1
回答
Linux上动态链接器的名称
、
、
在Arch-Linux上,当将对象文件与ld链接到动态链接的ELF可执行文件时,它使用/lib/ld64.so.1作为默认的动态链接器。但是,我的动态链接器是来自Glibc的/lib/ld-2.26.so。 我知道,我可以使用ld选项指定到--dynamic-linker的动态链接器,但如何确保在为其他--dynamic-linker发行版编译时找到正确的动态链接器。换句话说:如何在Linux上找到动态链接器的正确名称?
浏览 2
提问于2017-12-28
得票数 0
回答已采纳
1
回答
为什么LD_PRELOAD,LD_LIBRARY_PATH和其他相关的东西包含" ld ",而ld是链接器和动态加载器,应该用"dl“表示?
关于Linux和其他基于Unix的操作系统中动态加载器的命名,我有一个小问题。它们的名称中都包含"ld“:LD_PRELOAD、LD_LIBRARY_PATH、动态加载器将其配置存储在/etc/ld.*中。我对此有点困惑,因为ld是一个链接器,它是动态加载器的一个独立部分。命名时应该是"DL“而不是"LD”吗? 提前谢谢。
浏览 1
提问于2013-06-18
得票数 1
回答已采纳
1
回答
GCC的部分静态与部分动态连接
、
、
、
我试图编译一个非常简单的C程序(就像hello一样简单),它使用与GCC的动态和静态链接。我想知道在一般情况下如何做到这一点,所以我的最小测试示例只是尝试将libc动态链接为静态和libm。 关于同一主题,我至少遇到了以下其他问题: 其中的一些答案提出了一些建议,比如使用-Wl、-Bstatic和-Wl、-Bdynamic来指定哪些库分别是静态的和动态的。此外,还建议简单地指定要链接的静态库的完整路径。 我尝试过这些建议中的几个,以及其中的变体。我不明白它给我的错误信息。我知道派是什么,但我看不出它和我想做什么有什么关系。 以下是一些失败的尝试: $ gcc test.c /usr/lib
浏览 6
提问于2014-10-02
得票数 5
回答已采纳
2
回答
为什么没有更多地使用静态链接?
、
、
、
、
我理解动态链接的好处(旧代码可以利用库的自动升级,它更节省空间),但它肯定有缺点,特别是在异构的Linux生态系统中。由于系统升级破坏了向后兼容性或在共享库中引入了回归,这使得分发与分发无关的二进制文件变得困难,并且使以前工作的程序更有可能崩溃。 考虑到这些缺点,为什么动态链接似乎是如此普遍的首选?为什么很难找到静态链接的、与发行版无关的Linux二进制文件,即使对于小型应用程序也是如此?
浏览 4
提问于2011-08-25
得票数 10
回答已采纳
1
回答
zOS中的动态链接
、
我必须在zOS中创建一个动态链接库。要传递给编译器的选项有哪些。 另外,如何检查zOS中的库是否动态链接依赖于其他库。我们在linux中有ldd,它显示了这种联系。我们在zOS的土地上有'ldd‘的等价物吗?
浏览 0
提问于2010-12-09
得票数 5
回答已采纳
2
回答
强制动态链接库
、
、
、
、
我从彼得·范德尔·林登( Peter Van Der Linden )的“专家C编程:深层C秘密”一书中了解到,有些特定的库是必须进行动态链接的;哪些是这些库,以及它们为什么强制动态链接?(更具体地说,在GNU/Linux系统上)
浏览 4
提问于2011-03-14
得票数 3
2
回答
在另一个DLL中动态加载DLL
、
、
我需要在另一个动态链接库(Visual C++ )中加载一个动态链接库,这样我就可以在第二个动态链接库中使用嵌入在第一个动态链接库中的类。我有这两个库的代码,因为我创建了两个dll,但我从来没有动态加载过库,所以我不确定这是如何完成的…… 此外,我想使这个多平台,我已经编译为.dll和.so,所以这将是一个伟大的平台无关的方法来做this...otherwise,我可以使用宏,以包括windows或linux特定的代码。 致以最良好的问候和万分感谢
浏览 4
提问于2010-11-24
得票数 2
2
回答
Linux:是否有可能使用静态链接的二进制文件进行一些面向插件的编程?
、
、
、
假设我们有一个非常小的嵌入式系统,它只包含linux内核和一个静态链接的二进制文件,作为init运行。我们希望二进制文件能够在运行时动态加载外部插件。 在linux上是可能的吗?Dlopen只适用于共享库和动态链接,因为静态二进制文件不会将任何符号导出到外部世界,所以还有其他方法可以做到这一点吗?
浏览 4
提问于2011-12-16
得票数 2
回答已采纳
1
回答
用于静态链接器、动态链接器、加载程序和动态加载程序的可执行ELF文件分别是什么?
、
、
、
、
在Linux中,可执行的ELF文件分别用于 静态链接器 动态链接器 装载机 动力装载机? 它们中的哪一个被调用 由execve() 由dlopen()? 如何由execve()或dlopen()调用它们,以解决execve()或dlopen()用于调用可执行文件的鸡蛋问题? 谢谢。
浏览 0
提问于2018-10-20
得票数 2
2
回答
关于C/C++静态库的推理
、
、
、
、
我从来没有想过下面的问题,但是因为我现在必须处理代码中的一堆依赖项,所以我想我最好把我的事实弄清楚。让我们将其限制在现代Linux版本,比如说ubuntu amd64。 既然静态库不包含动态库引用,那么如何在静态库中解析未定义的符号呢?依赖的二进制文件是否可以动态加载未定义的符号,或者必须在编译时由另一个静态库或目标文件解析这些符号? 编译器是否可以通过链接到动态库来解析依赖项(应用程序依赖于静态库),如果可以,代码文本是否会静态解析为结果二进制文件,或者是否存在动态引用? 例如,静态库L使用来自libc6.so的malloc,它将由应用程序A使用。L和A都会动态使用libc6.中的mallo
浏览 2
提问于2012-03-08
得票数 4
回答已采纳
2
回答
动态链接器如何确定在Linux上调用哪个例程?
、
、
、
我有一个关于Linux上的动态链接的问题。考虑以下ARM二进制文件的反汇编。 8300 <printf@plt-0x40>: .... 8320: e28fc600 add ip, pc, #0, 12 8324: e28cca08 add ip, ip, #8, 20 ; 0x8000 8328: e5bcf344 ldr pc, [ip, #836]! ; 0x344 .... 83fc <main>: ... 8424:ebffffbd bl 8320 <_init+0x2c> Main
浏览 0
提问于2015-09-25
得票数 1
1
回答
OS有两个链接器吗?一个静态的还是一个动态的?
、
、
、
、
问题是,我发现Mac有一个dyld (正如我理解动态链接器一样),但也有一个简单的链接器(就像我理解静态链接器一样)。 问题是:真的是这样吗?两个链接器?一个静态的还是一个动态的? 为什么他们决定要两个?Linux只有一个链接器(ld),它同时执行静态链接和动态链接。
浏览 1
提问于2015-03-29
得票数 4
回答已采纳
2
回答
发布linux软件兼容性
、
我想为Linux发布一个C++库。是否只有glibc版本决定与其他Linux发行版的兼容性(当没有其他库被动态链接时)? 在过去5年中,是否有更好的方法来支持大多数Linux发行版,而不是设置几台虚拟机并在那里编译呢?例如,在一个非常老的Linux系统上编译的Linux二进制文件会在新的Linux版本上运行吗?
浏览 0
提问于2015-05-25
得票数 2
回答已采纳
2
回答
如何将动态可执行文件转换为静态可执行文件?
、
、
如何在不从源代码重新编译的情况下将预先构建的动态可执行文件转换为静态可执行文件?我在Linux上使用ARMv7 cpu,并且我可以访问动态可执行程序所需要的库。(我不能使用Ermine或Statifier !)
浏览 1
提问于2013-10-17
得票数 2
2
回答
linux中接口的特定接口名称
、
、
是否有可能将接口名称(比如eth1)硬编码为linux驱动程序代码中的特定接口? 这只是在受控环境中,所以打破默认的linux方式(动态分配名称)是可以的。
浏览 5
提问于2010-07-21
得票数 2
回答已采纳
1
回答
如何查看链接到我的程序中的确切内容?
、
、
是否可以在Linux中使用命令行工具来确定链接到我的可执行文件中的内容? 一种证明我没有静态或动态地链接到另一段特定代码的方法。
浏览 1
提问于2016-09-27
得票数 0
1
回答
ld.so是可执行的吗?
、
$ file /lib/ld-linux.so.2 /lib/ld-linux.so.2: symbolic link to i386-linux-gnu/ld-2.27.so $ readlink -f /lib/ld-linux.so.2 /lib/i386-linux-gnu/ld-2.27.so $ file /lib/i386-linux-gnu/ld-2.27.so /lib/i386-linux-gnu/ld-2.27.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically link
浏览 0
提问于2018-06-10
得票数 4
回答已采纳
1
回答
链接实际上是如何在内部发生的?
、
、
、
有些问题我找不到答案。任何帮助都是非常有用的。 在C编译模型中,链接是如何发生的? 如果我使用的是Linux和GCC,glibc如何链接到主程序。它是静态的还是动态的?
浏览 3
提问于2012-05-10
得票数 2
回答已采纳
1
回答
在Ubuntu 11.04上使用动态加载安装perl
、
、
我正在尝试在Ubuntu 11.04上安装Perl,我需要它具有动态加载选项。在./Configure过程中,它会询问动态加载器的源文件的位置。我找不到适合linux的版本。使用dl_dlopen.xs会产生有关未定义引用的编译时错误。 有人能帮我找到正确的Dynamic Loader源文件吗?或者告诉我安装Perl动态加载的替代方法?
浏览 1
提问于2015-11-11
得票数 0
3
回答
指定在Linux上启动可执行文件时使用的动态链接器/加载程序
、
、
、
、
我有一个奇怪的Linux系统,其中大多数软件是针对Glibc编译的,还有一些是针对uClibc编译的。 因为Linux是一个标准发行版,当我启动和执行时,会从glibc调用标准的动态链接器(/lib/ld.so.1)。 我正在寻找一种在启动任何可执行文件之前指定动态加载程序的方法,因此当我想运行针对uClibc编译的软件时,我可以定义使用uClibc动态加载程序的启动机制(/lib/ld-uClibc.so.0)。 有什么想法吗?
浏览 8
提问于2014-08-16
得票数 7
回答已采纳
3
回答
试图静态链接Boost
、
、
、
我在Linux、Eclipse、g++和Boost库中工作。有了使用Boost线程的现有程序,我尝试静态地而不是动态地链接它。/usr/local/lib目录包含以下文件: libbost_thread.a libbost_thread.so libbost_thread.1.41.0 动态链接工程: g++ -o"MyProgram" ./main.o -lboost_thread 静态链接: g++ -static -o"MyProgram" ./main.o -lboost_thread 产生大量的消息,如: 未定义的对`pthread_mu
浏览 5
提问于2010-02-27
得票数 14
回答已采纳
1
回答
uC/OS-II如何动态加载任务
、
基本上,当我的系统运行时,我希望用户能够将一些新代码ftp到SD卡,并动态加载新函数并创建一个在系统中运行的任务。这对于Linux来说是正常的。例如,我可以编译一个SO,并将其动态加载到内存中。 如何在uC/OS II或III中做到这一点?
浏览 5
提问于2014-10-22
得票数 1
回答已采纳
2
回答
GHC静态链接动态库
、
、
、
、
在Arch Linux上,默认情况下已安装的Haskell库是动态链接的。所以要在ghc中编译任何东西,我必须使用-dynamic标志,否则它甚至不会发现库。但是,我希望生成可以分发到其他系统的静态链接的二进制文件。 有没有办法用ghc从动态/共享库中生成静态链接的二进制文件? 我尝试了中的-optl-static,但这导致了无数的“未定义引用”错误。
浏览 3
提问于2021-04-14
得票数 2
1
回答
如何将共享库链接到linux中的其他共享库?
、
、
、
我的应用程序(使用dlopen)动态加载liba.so。 liba.so使用libb.so,所以我想将liba.so与libb.so链接起来。在Linux中如何做到这一点? 提前谢谢。
浏览 0
提问于2010-09-02
得票数 5
回答已采纳
1
回答
在不同的.so中总是内联函数
、
、
、
、
在Linux中,如果我将动态库中的函数声明为gcc,然后动态加载该库,则该函数会被动态链接器内联吗? 我正在编译-O3中的动态库,并且没有传递任何链接时间优化标志-flto。 真正的问题是:当一个函数从另一个库中被调用时,它是否值得像往常一样在动态库中声明它呢?
浏览 9
提问于2017-07-25
得票数 1
回答已采纳
1
回答
UPX是否神奇地将二进制文件从动态链接转换为静态链接的libarires?
、
、
、
、
我试图在gnu/linux amd64上使用静态库构建一个基于qt的软件,但没有成功(qt是成功地静态构建的)。 现在我看到有些人在使用UPX。因此,我尝试了动态构建,实际上,“file”命令将二进制文件识别为静态链接。我能相信吗?我应该考虑用统计员来代替吗? 提前感谢 编辑 抱歉,我说得不够清楚。我正在尝试使用QT框架构建一个应用程序,但是构建脚本很复杂,是为共享库创建的。我能够在二进制动态链接中构建应用程序,它可以工作,但我想获得一个带有静态链接库的二进制文件。我尝试了UPX软件(),就像我在其他主题上看到的那样,它用于将带有动态库的二进制转换为带有静态库的二进制。 但这对我来说太神奇了,
浏览 12
提问于2013-12-23
得票数 4
2
回答
在C++中向共享对象添加动态依赖项
、
我希望创建动态链接到共享对象A的共享对象B。我使用以下命令编译共享对象B: g++ -fPIC -shared -L/path/to/directory -lA -o libB.so B.cpp 我的理解是,-lA告诉链接器libB.so应该动态链接到/path/to/directory/libA.so。但是,当我对最终产品执行ldd时,没有列出依赖项(由于缺少这些依赖项,加载libB.so失败)。 ldd libB.so linux-vdso.so.1 => (0x00007ffd4233e000) libstdc++.so.6 => /usr/lib/x86_64-linu
浏览 4
提问于2016-02-04
得票数 2
回答已采纳
3
回答
未定义的对`dl_iterate_phdr的引用
、
、
我需要帮助!!我正在尝试构建一个独立的可执行文件(不需要任何动态链接)。 我编写了一个小的测试程序,为它生成一个可重定位的对象文件,名为test.o。当我试图使用GNU链接器构建独立的可执行文件时,我会得到以下错误: O /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/libc.a /usr/lib/gcc/i 486-linux-gnu/4.4/usr/lib/gcc/i 486-linux-gnu/4.4/libgcc_eh.a函数中的/usr/lib/gcc/i486-linux-gnu/4.4/libgcc_eh.a(unwind-dw2-fde-gl
浏览 8
提问于2013-01-14
得票数 4
1
回答
动态链接器/加载器库-缺少ld.so
、
、
以下手册描述了动态链接器/加载器库: ld.so程序处理很久以前使用的a.out二进制文件;ld-linux.so*处理ELF (/lib/ld-linux.so.1表示libc5,/lib/ld-linux.so.2用于glibc2),每个人都已经使用了多年。 我使用Ubuntu15.04,没有ld.so。我的系统包含一些指向ld-2.21的符号链接,因此: /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2 /lib32/ld-linux.so.2 -> ld-2.21.so /lib64/ld-linux-x86-64.so.2 ->
浏览 0
提问于2015-09-21
得票数 0
回答已采纳
1
回答
静态链接GLIBC和专有软件许可
、
、
、
我对开源和许可证有基本的理解问题。有人能为下面的场景澄清一些问题吗?不好意思,如果是很基本的话 我正在编写一个专用软件,计划在其中使用一些开源库。我还需要glibc和C编译器,但不想使用我的操作系统中默认的gcc工具链,所以我自己使用了跨库ng构建了自己的工具链。 现在在ct中,我猜libstdc++库是静态链接的(这是用于c++的,在大多数情况下我不使用它),但是从我的工具链配置是我的libc静态还是动态链接?如果是这样的话,考虑到glibc是LGPL,而且我可以将它链接到我的专有软件,这种静态链接会不会给我wrt许可证带来任何问题?我的软件还能被关闭吗?或者我必须释放编译过的对象。
浏览 10
提问于2012-07-27
得票数 3
回答已采纳
1
回答
动态链接器是Linux系统上内核或GCC库的一部分吗?
、
、
动态链接器(又名程序解释器,Loader)是内核还是GCC库的一部分? 更新 (28-08-16): 我已经发现,每个二进制文件(即通过共享库链接)使用的动态链接器的默认路径是到共享库/lib64/ld-linux-x86-64.so.2的链接,而共享库/lib/x86_64-linux-gnu/ld-2.23.so是实际的动态链接器。 它是libc6 (2.23-0ubuntu3)包的一部分,即。中用于AMD64架构的ubuntu。 我的实际问题是 如果这个辅助程序(d-2.23.so)不存在,那么所有动态链接的应用程序(全部,现在是一天)会发生什么? 对此的回答是“应用程序将不运行,甚至s
浏览 0
提问于2016-08-09
得票数 9
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
在 Obsidian 中创建和使用链接 | Linux 中国
警惕利用Linux预加载型恶意动态链接库的后门
为什么需要动态链接?
Linux 中命令链接操作符的十个最佳实例
Linux 中命令链接操作符,让你的代码更简洁!
热门
标签
更多标签
云服务器
ICP备案
对象存储
即时通信 IM
实时音视频
活动推荐
运营活动
广告
关闭
领券