腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
什么是"Windows不支持适当的动态链接?“
c++
、
linux
、
windows
、
dll
我已经阅读了Linux dlopen()和dlsym()的文档,它们分别打开动态库并在库中加载符号。 这些调用似乎相当于Windows的LoadLibrary()和GetProcAddress()。 我在这篇文章中读到"Windows不支持适当的动态链接“:。 Linux和Windows动态库调用不同的原因是什么? Linux上的动态库能够在可执行文件中加载符号,这是唯一的区别吗?但是这意味着可执行文件也是Linux上的库,因为dlopen()在动态库上运行。
浏览 2
提问于2017-02-02
得票数 0
回答已采纳
1
回答
``dlopen()‘通过调用动态链接器’`ld linux.so‘执行动态链接吗?
dynamic-linking
、
ld
CSAPP说 Linux系统为动态链接器提供了一个简单的接口,允许应用程序在运行时加载和链接共享库。#包括 void *dlopen(const *filename,int标志);返回:指针来处理如果确定,如果错误为NULL dlopen()是否通过调用动态链接器ld-linux.so来执行动态链接? ld-linux.so是dlopen()调用来执行动态链接的动态链接器吗? 谢谢。
浏览 0
提问于2020-09-27
得票数 0
回答已采纳
4
回答
为什么要使用显式参数进行静态和动态链接
c++
、
visual-studio
、
gnu
我主要在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环境中的动态链接类型
compiling
、
dynamic-linking
、
shared-library
、
static-linking
在创建windows静态库时,我们只需创建一个应该包含在链接器路径中的.lib文件。 在创建windows共享库以及.dll时,我们还生成了一个.lib文件。这个lib文件包含由库公开的API的签名。 有两种使用此库的方法 我们可以直接引用项目中的库API,并在链接器属性中将路径添加到.lib文件中。有些人称它为静态链接动态库。 或者,我们可以在运行时显式加载动态库。在这种情况下,我们不需要为链接器指定lib文件路径。调用它动态链接的动态库。 我的问题是,对于Linux上的共享库,我们也有类似的东西吗?或者仅仅是静态库(.a)和共享库(.so)? 我知道如何使用gcc -l选项在linux上包
浏览 0
提问于2014-11-19
得票数 2
回答已采纳
1
回答
动态共享库--用于linux
linux-device-driver
、
embedded-linux
我只有一个关于Linux共享库文件的问题。 我看到了许多与LinuxO.S 的动态共享库相关的链接 在上面的链接中提到了--包括库的文件: ctest.h 现在在LINUX中使用libdl构建函数-- dlopen,dlsym,dlclose。 我们真的需要为动态图书馆包括原型文件ctest.h吗? 请对以上职位提出一些建议。
浏览 7
提问于2012-12-02
得票数 2
回答已采纳
1
回答
我们可以在窗口上使用.so文件吗?
c++
、
dll
、
shared-libraries
、
dynamic-linking
我需要在windows和linux平台上为我的c++代码库动态创建和链接库。我知道DLL格式适用于windows,而.so则用于linux平台。但是我读到.so也可以在windows平台上链接。我的问题是,我能否创建一个通用动态库(.so)来在windows和linux上运行我的应用程序?如果是,怎么做?
浏览 3
提问于2016-01-18
得票数 1
回答已采纳
1
回答
Linux内核如何动态地使用模块?
linux-kernel
、
kernel-modules
、
dynamic-linking
、
dynamic-loading
理解Linux内核说 内核在管理模块时有两个关键任务要执行。第一项任务是确保内核的其余部分能够到达模块的全局符号,例如其主函数的入口点。模块还必须知道内核和其他模块中符号的地址。因此,当一个模块被链接时,引用就会被一劳永逸地解析。第二个任务包括跟踪模块的使用情况,以便在另一个模块或内核的另一部分使用模块时不会卸载模块。一个简单的引用计数跟踪每个模块的使用情况。 任何共享库都可以动态链接(使用LD_LIBRARY_PATH)和动态加载(通过dlopen()、dlsym()和dlclose()),这是正确的吗? 模块是Linux内核的共享库吗? Linux内核如何动态地使用模块?是通过动态链接(使
浏览 0
提问于2018-10-17
得票数 0
回答已采纳
1
回答
什么时候在iOS中使用动态链接库?在iOS中使用动态库的优点是什么?
ios
、
xcode
、
dynamic-linking
、
dynamic-library
对于动态链接库、窗口中的和Linux与iOS之间的优势之间的区别,我感到很奇怪。 下面的⬇️句子是为了证明我为什么感到奇怪。 我了解到库可以分为静态库和动态库。 使用动态库的优点是允许其他应用程序使用相同的动态库( in Window,.dll file),这样可以减少每个应用程序的内存使用量,并且可以更容易地重新分发动态库而不是重新分发应用程序。实际上,在使用一些应用程序时,我可以体验到“没有XXX.dll文件”。 在Xcode中,当创建新项目时,我们可以选择框架和framework & library中的静态库。在创建项目后,我们可以选择如何成为Mach-O型的“可执行、动态库、静
浏览 4
提问于2021-04-21
得票数 2
回答已采纳
2
回答
强制动态链接库
c
、
linux
、
gcc
、
dynamic-linking
、
static-linking
我从彼得·范德尔·林登( Peter Van Der Linden )的“专家C编程:深层C秘密”一书中了解到,有些特定的库是必须进行动态链接的;哪些是这些库,以及它们为什么强制动态链接?(更具体地说,在GNU/Linux系统上)
浏览 4
提问于2011-03-14
得票数 3
2
回答
静态库链接两次
c++
我有以下设置: 静态库 链接到(1.)的动态库。 链接到(1.)的可执行文件。和(2.) 来自from静态库的代码现在被复制并呈现在动态库和可执行文件中。 问题: 数据(全局变量、静态类成员)是否也重复,可执行文件和dll是否看到相同的数据? Linux和Windows之间有什么区别吗? 你怎么解决这个问题? 编辑: 谢谢你的回答,我现在可以准确地解释我的情况了。 静态库没有导出/导入标志。动态图书馆有自己的符号导出。 Windows: 动态库有静态库的text+data段的副本。可执行程序不知道,动态库已经链接了静态库,因为静态库符号的非从外部可见。 Linux: 动态库
浏览 6
提问于2015-07-03
得票数 9
回答已采纳
1
回答
在JNI中链接静态库
java
、
java-native-interface
我是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
回答已采纳
2
回答
在另一个DLL中动态加载DLL
c++
、
dynamic
、
shared-libraries
我需要在另一个动态链接库(Visual C++ )中加载一个动态链接库,这样我就可以在第二个动态链接库中使用嵌入在第一个动态链接库中的类。我有这两个库的代码,因为我创建了两个dll,但我从来没有动态加载过库,所以我不确定这是如何完成的…… 此外,我想使这个多平台,我已经编译为.dll和.so,所以这将是一个伟大的平台无关的方法来做this...otherwise,我可以使用宏,以包括windows或linux特定的代码。 致以最良好的问候和万分感谢
浏览 4
提问于2010-11-24
得票数 2
2
回答
当连接到动态共享库时,ld会做什么?
c
、
linux
、
linker
、
ld
当将应用程序与动态共享库链接时,如 gcc -o myprog myprog.o -lmylib 我知道链接器(我的Linux上的ld)使用-l选项在生成的myprog可执行文件中存储库的名称(在本例中是mylib),这个库将在加载和链接时使用(如果忽略惰性动态链接,程序将在何时启动)。我想知道ld对动态共享库所执行的其他任务(我只是指编译时完成的静态链接步骤)? ld必须检查所提供的动态共享库中是否存在未定义的符号。 还有其他的东西吗? 此外,我将对您使用的关于ELF格式和动态链接和加载过程的指针(书籍、在线文档)感兴趣。
浏览 2
提问于2013-11-01
得票数 3
回答已采纳
2
回答
什么是链接器,什么是动态链接中的加载程序?
shared-library
、
dynamic-linking
、
ld
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
4
回答
Linux: C/C++标准库静态与动态链接
c++
、
c
、
linux
、
shared-libraries
、
static-libraries
在任何操作系统上都可能静态或动态地编译C++/C标准库。在Windows上,我总是喜欢静态构建,因为它有助于避免在特定的Windows版本、版本和服务包上安装或未安装不同版本的库的"dll地狱“问题。静态链接使软件更易于移植,更少依赖最终用户对其操作系统所做的操作(我甚至看到了一些示例,当最终用户可以在system32中的一些dll上创建dll时,他无法解释为什么,或者当用户声称我的应用程序包含病毒,因为它试图从官方微软网站下载动态链接的先决条件时……)所以,在我的经验中,在Windows上静态链接通常比动态链接更好。然而,我对Linux并不熟悉,所以任何人都能分享他的经验吗?我的问题
浏览 4
提问于2014-02-19
得票数 6
回答已采纳
7
回答
在Linux上使用静态链接的应用程序有什么缺点吗?
linux
、
dynamic
、
static
、
linker
我在这里看到了几个关于这个主题的讨论,但我想问一下我的特殊情况: 如果我有一些我的应用程序正在使用的第三方库,我想将它们链接在一起,以省去在LD_LIBRARY等方面的麻烦,那么在Linux上,除了更大的文件大小之外,它还有什么缺点吗? 另外,是否可以只静态链接一些库,而将其他库(标准Linux库)动态链接? 谢谢。
浏览 7
提问于2009-05-19
得票数 2
1
回答
什么是cmake中的模块库类型?
cmake
、
shared-libraries
、
dlopen
cmake 文档说, 共享库是动态链接并在运行时加载的。模块库是没有链接到其他目标的插件,但可以使用类似dlopen的功能在运行时动态加载。 实际上,我可以看到SHARED和MODULE类型目标在Linux上生成.so动态库。.so库是动态链接的,在运行时加载并使用dlopen()进行映射。这两类目标有何不同?
浏览 9
提问于2017-04-18
得票数 10
1
回答
动态链接器是Linux系统上内核或GCC库的一部分吗?
c
、
linux
、
dynamic-linking
动态链接器(又名程序解释器,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
回答已采纳
2
回答
关于C/C++静态库的推理
c++
、
build-process
、
static-libraries
、
dynamic-linking
、
abi
我从来没有想过下面的问题,但是因为我现在必须处理代码中的一堆依赖项,所以我想我最好把我的事实弄清楚。让我们将其限制在现代Linux版本,比如说ubuntu amd64。 既然静态库不包含动态库引用,那么如何在静态库中解析未定义的符号呢?依赖的二进制文件是否可以动态加载未定义的符号,或者必须在编译时由另一个静态库或目标文件解析这些符号? 编译器是否可以通过链接到动态库来解析依赖项(应用程序依赖于静态库),如果可以,代码文本是否会静态解析为结果二进制文件,或者是否存在动态引用? 例如,静态库L使用来自libc6.so的malloc,它将由应用程序A使用。L和A都会动态使用libc6.中的mallo
浏览 2
提问于2012-03-08
得票数 4
回答已采纳
1
回答
zOS中的动态链接
dynamic-linking
、
zos
我必须在zOS中创建一个动态链接库。要传递给编译器的选项有哪些。 另外,如何检查zOS中的库是否动态链接依赖于其他库。我们在linux中有ldd,它显示了这种联系。我们在zOS的土地上有'ldd‘的等价物吗?
浏览 0
提问于2010-12-09
得票数 5
回答已采纳
1
回答
是否可以静态地将一些库(但不是所有库)链接到libtool?
static-libraries
、
libtool
我正在进行一个使用autoconf、automake和libtool构建的项目。该项目以二进制和源两种形式分发。 在Linux上,默认情况下构建脚本动态链接到所有库。这是有意义的,因为Linux用户可以依靠他们发行版的包管理器来处理依赖关系。 在Windows上,默认情况下,构建脚本链接到所有库,静态地使用libtool的-all-static选项。这是有意义的,因为Windows没有提供任何依赖项,并且能够分发包含所有依赖项的单个二进制文件,而不是浪费大量的DLL,这是很有帮助的。 在OSX上,一些依赖项是由操作系统提供的,而有些则不是。因此,动态地链接到OS提供的库和静态地链接到其他库将是
浏览 2
提问于2009-12-22
得票数 6
回答已采纳
2
回答
如何将动态可执行文件转换为静态可执行文件?
c
、
linux
、
arm
如何在不从源代码重新编译的情况下将预先构建的动态可执行文件转换为静态可执行文件?我在Linux上使用ARMv7 cpu,并且我可以访问动态可执行程序所需要的库。(我不能使用Ermine或Statifier !)
浏览 1
提问于2013-10-17
得票数 2
1
回答
避免依赖项中的动态链接
rust
我正在开发一个针对自定义linux的项目,并且我遇到了依赖项引用的动态dll的问题。 有没有办法预先知道依赖项是否有动态链接库?有没有可能以某种方式避开这些库?我想要一个静态二进制文件(MUSL对我不起作用,因为一个依赖项不能用它编译)。 谢谢
浏览 8
提问于2021-05-05
得票数 0
回答已采纳
1
回答
UPX是否神奇地将二进制文件从动态链接转换为静态链接的libarires?
c++
、
qt
、
dynamic
、
static
、
upx
我试图在gnu/linux amd64上使用静态库构建一个基于qt的软件,但没有成功(qt是成功地静态构建的)。 现在我看到有些人在使用UPX。因此,我尝试了动态构建,实际上,“file”命令将二进制文件识别为静态链接。我能相信吗?我应该考虑用统计员来代替吗? 提前感谢 编辑 抱歉,我说得不够清楚。我正在尝试使用QT框架构建一个应用程序,但是构建脚本很复杂,是为共享库创建的。我能够在二进制动态链接中构建应用程序,它可以工作,但我想获得一个带有静态链接库的二进制文件。我尝试了UPX软件(),就像我在其他主题上看到的那样,它用于将带有动态库的二进制转换为带有静态库的二进制。 但这对我来说太神奇了,
浏览 12
提问于2013-12-23
得票数 4
1
回答
ld.so是可执行的吗?
load
、
linker
$ 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
回答
如何在Linux中从动态库(libsample.so)生成导入库(libsample.a)
c++
在Linux上创建动态库之后,我希望从动态库(.so)生成一个导入库(.so)。我该怎么做呢?
浏览 4
提问于2010-08-05
得票数 5
2
回答
Linux:是否有可能使用静态链接的二进制文件进行一些面向插件的编程?
c
、
linux
、
plugins
、
dlopen
假设我们有一个非常小的嵌入式系统,它只包含linux内核和一个静态链接的二进制文件,作为init运行。我们希望二进制文件能够在运行时动态加载外部插件。 在linux上是可能的吗?Dlopen只适用于共享库和动态链接,因为静态二进制文件不会将任何符号导出到外部世界,所以还有其他方法可以做到这一点吗?
浏览 4
提问于2011-12-16
得票数 2
回答已采纳
1
回答
从静态库linux C++中打开动态库
c++
、
linux
、
static-libraries
、
dlopen
我有一个linux应用程序,它链接到静态库(.a),该库使用dlopen函数加载动态库(.so) 如果我将静态库编译为动态库并将其链接到应用程序,则dlopen将按预期的方式工作,但如果像上面所描述的那样使用它,它将不会工作。 静态库不能使用dlopen函数加载共享库吗? 谢谢。
浏览 2
提问于2013-07-25
得票数 2
回答已采纳
1
回答
Linux中的应用程序和库之间使用什么IPC?
linux
、
libraries
、
shared-library
、
ipc
当您拥有依赖于库(动态链接)的Linux应用程序时,应用程序如何与库通信?使用了什么进程间通信方法?
浏览 0
提问于2023-01-15
得票数 1
2
回答
同时具有.a和.so的库-如何强制使用.a?
static
、
linker
、
.a
我正在写一个程序使用Qt Creator,在Linux上。它使用了一个库,对于这个库,我在/usr/lib目录中有.so和.a等效库,例如: /usr/lib/libuseme.a /usr/lib/libuseme.so 据我所知,如果我链接到.so,它将被动态链接,但如果我链接到.a,它将被静态链接。 在这种情况下,我想要静态链接,让我有更好的机会以一种自包含的方式分发我的程序。 但是链接器的-l选项只允许指定库名称,不包括lib或扩展名-例如 -luseme 那么,我如何表明我希望它链接(静态地)到.a,而不是动态地链接到.so
浏览 3
提问于2013-07-13
得票数 2
回答已采纳
1
回答
在不同的.so中总是内联函数
c++
、
gcc
、
dll
、
shared-libraries
、
link-time-optimization
在Linux中,如果我将动态库中的函数声明为gcc,然后动态加载该库,则该函数会被动态链接器内联吗? 我正在编译-O3中的动态库,并且没有传递任何链接时间优化标志-flto。 真正的问题是:当一个函数从另一个库中被调用时,它是否值得像往常一样在动态库中声明它呢?
浏览 9
提问于2017-07-25
得票数 1
回答已采纳
5
回答
默认情况下链接的库
c
、
linux
、
gcc
我的代码正在测试中: int main(){ return 0; } 从它编译的可执行文件所依赖的动态共享库是: $ gcc -o test test.c $ ldd test linux-gate.so.1 => (0x00783000) libc.so.6 => /lib/libc.so.6 (0x00935000) /lib/ld-linux.so.2 (0x00ea5000) 我想知道这三个图书馆在扮演什么角色? main函数属于哪个库? /lib/libc.so.6? return属于哪个库? /lib/libc.so.6? 这三
浏览 25
提问于2011-08-06
得票数 6
回答已采纳
1
回答
如何重新分发建立在现代Ubuntu上的二进制程序,以便它们可以在任何旧的Linux系统上执行?
build
、
gcc
、
binary
我发现,如果我在Ubuntu10.10上构建任何二进制文件,那么它就不会在一些旧的Linuxes上执行。这是因为Ubuntu使用了一个非常新的C库,称为EGLIBC。大多数桌面Linux系统使用GLIBC。 我想知道是否有任何标准的方法,如何重新分发构建在现代Ubuntu上的二进制程序,以便在任何旧的Linux系统上执行它们? 如何找到所有必需的依赖项(glibc版本、动态库)?
浏览 0
提问于2011-01-12
得票数 3
回答已采纳
2
回答
发布linux软件兼容性
c++
、
glibc
我想为Linux发布一个C++库。是否只有glibc版本决定与其他Linux发行版的兼容性(当没有其他库被动态链接时)? 在过去5年中,是否有更好的方法来支持大多数Linux发行版,而不是设置几台虚拟机并在那里编译呢?例如,在一个非常老的Linux系统上编译的Linux二进制文件会在新的Linux版本上运行吗?
浏览 0
提问于2015-05-25
得票数 2
回答已采纳
2
回答
为什么没有更多地使用静态链接?
linux
、
linker
、
shared-libraries
、
dynamic-linking
、
static-linking
我理解动态链接的好处(旧代码可以利用库的自动升级,它更节省空间),但它肯定有缺点,特别是在异构的Linux生态系统中。由于系统升级破坏了向后兼容性或在共享库中引入了回归,这使得分发与分发无关的二进制文件变得困难,并且使以前工作的程序更有可能崩溃。 考虑到这些缺点,为什么动态链接似乎是如此普遍的首选?为什么很难找到静态链接的、与发行版无关的Linux二进制文件,即使对于小型应用程序也是如此?
浏览 4
提问于2011-08-25
得票数 10
回答已采纳
1
回答
swift包管理器链接动态库
swift
、
xcode
、
swift3
、
xcode8
、
swift-package-manager
我在linux上使用了swift,生成了包含一些库的Package.swift文件,但当我使用swift build命令构建项目时,这些库与可执行文件是静态链接的。我尝试使用swift package generate-xcodeproj命令生成一个Xcode项目,在Xcode中构建该项目,然后打开产品目录,我发现库与可执行文件动态链接,Xcode做了什么?我如何使用swift build命令将其构建为动态链接,您能帮助我使用??吗
浏览 9
提问于2017-03-13
得票数 0
1
回答
是否有相当于Linux的dyld?
linux
、
macos
、
dynamic-loading
Mac为动态加载提供了一个有用的库,称为dyld。动态加载处理的许多有趣函数包括允许安装回调的函数,无论何时加载或卸载映像,dlopen和dlclose都将调用这些回调。这些函数分别是void _dyld_register_func_for_add_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide))函数和void _dyld_register_func_for_remove_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr
浏览 3
提问于2013-03-29
得票数 3
3
回答
在gcc中同时使用静态链接库和动态链接库
gcc
、
linker
我需要发布一个可以在尽可能多的x86 Linux发行版上运行的二进制文件。这意味着我必须静态链接一些库,比如glibc,因为用户可能没有我使用的版本。其他库必须是动态链接的,比如fontconfig,因为它依赖于缓存文件格式和硬编码位置,而这些文件格式和硬编码位置在每个系统上可能不同。 执行此操作的命令行选项有哪些?如果我指定-static,那么gcc将根本拒绝动态链接任何库。
浏览 1
提问于2009-05-01
得票数 55
回答已采纳
2
回答
GHC静态链接动态库
haskell
、
linker
、
ghc
、
static-linking
、
dynamic-linking
在Arch Linux上,默认情况下已安装的Haskell库是动态链接的。所以要在ghc中编译任何东西,我必须使用-dynamic标志,否则它甚至不会发现库。但是,我希望生成可以分发到其他系统的静态链接的二进制文件。 有没有办法用ghc从动态/共享库中生成静态链接的二进制文件? 我尝试了中的-optl-static,但这导致了无数的“未定义引用”错误。
浏览 3
提问于2021-04-14
得票数 2
1
回答
未定义的对`i2c_smbus_read_word_data的引用(int,无符号字符)
c++
、
gcc
、
i2c
、
ubuntu-18.04
更新到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
回答已采纳
3
回答
C标准库结构在macOS或Linux上的编译器和库版本之间兼容吗?
c
、
linux
、
macos
、
gcc
、
clang
我的主机应用程序接管了例如来自动态库的文件对象的所有权。即使我的主机应用程序和动态库是用不同版本的clang / gcc编译的,我能在这个对象上安全地调用fclose()吗? 背景 在Windows上(与运行时不同),这是非法的,我必须首先从运行时库中提取fclose()函数,这个库由动态库使用,因为所有运行时都有自己的池和文件或内存对象的内部结构。 Windows环境下的示例如下: 这个限制也适用于Linux和macOS吗?
浏览 0
提问于2018-01-22
得票数 6
回答已采纳
3
回答
试图静态链接Boost
linux
、
boost
、
linker
、
static-linking
我在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
回答
在同一个程序中使用Linux C++共享库和静态库
c++
、
linux
、
static
、
shared
如何在同一个Linux程序中同时使用C++共享库和静态库? 在使用g++进行管理时,我尝试将-static命令安排在库的前面和后面,我不想静态地链接,但是没有结果。ld通过g++抱怨共享库的.a文件在哪里(找不到-lwhatever错误)。 编辑:问题不在于无法找到-lwhatever错误,因为它只是因为没有指定库的静态版本而发生。我要做的是指定哪些库是静态链接的,哪些是动态的。
浏览 2
提问于2012-03-02
得票数 2
回答已采纳
1
回答
python加载静态库
python
、
linux
、
dll
我有一个新的问题与加载动态链接库的这里。我没有任何问题加载动态链接库的".so",".dll“扩展。现在我对扩展名为".a“的动态链接库遇到了一些问题。它是一个静态库。下面是我的代码 Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a") 顺便说一句,我的os env是一个linux开放的suse。当我尝试这样做时,我得到的确切错误消息是: File "module3.py", line 3, in <module> Security_dll =
浏览 1
提问于2016-12-09
得票数 0
2
回答
Linux dll的MFC应用程序
c++
、
linux
、
cakephp
、
dll
、
mfc
目前,我们有一个用MFC(服务器端)和Java(客户端)编写的遗留客户机/服务器系统。由于种种原因,本系统不能在Internet上运行。因此,我们正在开发一个小系统(这个遗留系统的很少的功能)在蛋糕php等,以满足客户的要求。 现在,遗留系统中的一个功能需要在这个新系统中使用。我们正在考虑将这些代码创建一个动态链接库,然后将其与蛋糕php集成(以节省时间),但是这个动态链接库不能在Linux上运行,因为这个新系统将安装在Linux上。 那么,有没有办法生成一个动态链接库,让它在Linux系统中使用QT等与php一起工作呢? 或 我们要重写整件事?在这种情况下,开发跨平台动态链接库最合适的框架是
浏览 1
提问于2013-02-16
得票数 0
1
回答
动态库是在启动时加载的,还是只有在可执行文件需要时才加载?
linux
、
linker
、
dynamic-linking
、
dynamic-library
、
dynamic-loading
以在Linux上运行的C应用程序为例,它与所需的共享库动态链接。 我知道.so文件应该在环境变量LD_LIBRARY_PATH中定义的路径中找到。 动态链接器是否在应用程序启动时加载此库?或者只能在需要从该库调用函数时才加载它吗?如果是后者,它如何才能真正知道哪个函数属于哪个库?
浏览 16
提问于2022-08-31
得票数 0
1
回答
如果动态加载程序找不到库,我可以运行可执行文件吗?
linux
、
linker
、
ld
、
dynamic-linking
我有一个用硬编码的RPATH生成二进制文件的构建系统。如果所需的包不在当前机器上,我有一个包管理器,它将下载并解压缺少的库。 我能否挂接linux动态链接器,以便在包管理器找不到库的情况下可以运行它?然后在库可用后重新运行动态链接器?
浏览 2
提问于2013-07-12
得票数 0
回答已采纳
2
回答
拥有同名库的静态和动态版本是一种常见的做法吗?
c++
、
c
、
linker
、
static-libraries
、
dynamic-library
我下载了一个库(准确地说,是NAG库),库的静态和动态版本都有相同的名称(libnagc_nag)。一开始,我遇到了麻烦,因为我试图链接到OS中的静态版本,默认情况下它使用动态库,因此我更改了文件的名称以区分它们(libnagc_nag_s.a和libnagc_nag_d.dylib用于OS,libnagc_nag_d.so在linux中)。我的问题是:给他们起同样的名字是一种普遍的做法吗?既然如此,以这种方式更名是否有任何问题或不利之处?
浏览 8
提问于2014-02-05
得票数 3
回答已采纳
1
回答
将静态库链接到gcc Linux的动态实验室中
c++
、
c
、
linux
、
linker
我有很多在32位平台Linux下的"c++“上编写的静态库。现在我需要用我的c++功能在64位平台Linux上编译"c“动态库。谁能告诉我做这件事最好的方法。我知道我应该把所有的函数原型放到extern "C"逻辑中,但是我应该用"-fPIC" key编译静态库吗?我必须在gcc编译器中使用哪些键来链接我的c++库?任何帮助都将不胜感激 非常感谢
浏览 13
提问于2017-08-09
得票数 1
1
回答
静态libgcc和静态libstdc++不工作
c++
、
gcc
、
static-libraries
我尝试用-static -静态-libgcc-静态-libstdc++编译项目,以便静态链接库。但是,exec是用动态链接库编译的。我试着重新安装gcc和g++,但是没有帮助。这完全是我本地环境的错误,因为在别人的机器上,它是静态连接的。 ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=, not stripped 我有Ubuntu 14.10,gcc版本4.8.4 谢谢
浏览 5
提问于2015-07-15
得票数 2
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
警惕利用Linux预加载型恶意动态链接库的后门
智能柜动态链接库 API SDK开发包
动态链接库DLL的加载:隐式加载和显式加载
为什么需要动态链接?
C+程序编译之谜(二)——隐藏源码,动态和静态链接库的秘密
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券