腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
opencv仅在linux中发生的未定义引用错误
、
我现在正在构建一个库,它依赖于opencv的一些功能,我使用opencv的方式是静态地链接它。然而,构建的库是一个动态库(例如,windows中的dll.dll和linux中的dll.so )。有了这个库之后,我就不难构建一个在windows环境中使用这个动态库(.dll)的演示程序。只是起作用了。但是,当它构建在Linux上时。这是一个不同的故事。我可以构建动态库(dll.so),但是当我在演示程序中调用它时,我有以下错误: dll.so||undefined reference to `cv::mulSpectrums(cv::_InputArray const&, cv::_In
浏览 2
提问于2014-02-27
得票数 0
回答已采纳
1
回答
动态库在内存中的实际位置在哪里?
、
、
、
、
在linux平台上, 有人能告诉我内存中的动态库在哪里吗? 我了解到动态库是根据这个过程的获取映射到进程的, 这是真的吗? 谢谢!
浏览 0
提问于2013-11-20
得票数 0
回答已采纳
1
回答
什么是"Windows不支持适当的动态链接?“
、
、
、
我已经阅读了Linux dlopen()和dlsym()的文档,它们分别打开动态库并在库中加载符号。 这些调用似乎相当于Windows的LoadLibrary()和GetProcAddress()。 我在这篇文章中读到"Windows不支持适当的动态链接“:。 Linux和Windows动态库调用不同的原因是什么? Linux上的动态库能够在可执行文件中加载符号,这是唯一的区别吗?但是这意味着可执行文件也是Linux上的库,因为dlopen()在动态库上运行。
浏览 2
提问于2017-02-02
得票数 0
回答已采纳
1
回答
修改gethostbyname (res_search)源代码-Linuubuntu14.04LTS
、
我试图修改我的项目在Linux中的DNS查找函数的行为,方法是将它设置为在文件中写入随机字符串作为测试。 Linux使用一些DNS解析器功能,主要是gethostbyname.。展望未来,我发现解析器函数在glibc6库中。所以,我下载了它,编译了它,生成了libresolv.so,libnss_dns.so动态库。然后,我在/usr/lib/x86_64-linux-gnu/上替换了系统上的现有系统。 注意:我发现这些库是通过修改gethostbyname代码并再次编译来解决查询的。然后,我看到了哪些动态库发生了变化。 通过创建一个直接使用res_query的程序(一个解析器函数)并使用-l
浏览 5
提问于2014-07-01
得票数 2
回答已采纳
1
回答
如何重新分发建立在现代Ubuntu上的二进制程序,以便它们可以在任何旧的Linux系统上执行?
、
、
我发现,如果我在Ubuntu10.10上构建任何二进制文件,那么它就不会在一些旧的Linuxes上执行。这是因为Ubuntu使用了一个非常新的C库,称为EGLIBC。大多数桌面Linux系统使用GLIBC。 我想知道是否有任何标准的方法,如何重新分发构建在现代Ubuntu上的二进制程序,以便在任何旧的Linux系统上执行它们? 如何找到所有必需的依赖项(glibc版本、动态库)?
浏览 0
提问于2011-01-12
得票数 3
回答已采纳
2
回答
使用c#.net实现从windows到linux的远程桌面连接
而对于rdp在c#中的开发,我们主要使用MSTSCLib;但是连接linux这个动态链接库并不支持。因此,在c#应用程序中,从windows到linux的远程过程调用需要使用什么动态链接库。 命名空间表单{公共分部类Form1 : Form {公共Form1() { InitializeComponent();} private void button1_Click(object sender, EventArgs e) { try { rdp.Server = txtServer.Text; rd
浏览 6
提问于2013-09-25
得票数 0
1
回答
避免依赖项中的动态链接
我正在开发一个针对自定义linux的项目,并且我遇到了依赖项引用的动态dll的问题。 有没有办法预先知道依赖项是否有动态链接库?有没有可能以某种方式避开这些库?我想要一个静态二进制文件(MUSL对我不起作用,因为一个依赖项不能用它编译)。 谢谢
浏览 8
提问于2021-05-05
得票数 0
回答已采纳
2
回答
仅包含Linux系统调用的最小C库
、
我的工作是使用Linux作为操作系统的嵌入式系统。这些系统不包含动态链接器,所以所有的库都必须静态包含。为了确保小的二进制大小,我需要一个小的C库。我知道有很多选项,但我的代码只使用系统调用,没有标准的C库调用、POSIX或任何其他扩展。使用一个完整的通用库是一种夸张的做法。 我可以用汇编语言编写这个库,但是我的目标硬件不是同构的。我需要在架构(ARM、i386和x86_64)和Linux内核版本之间有一定程度的可移植性。 有没有只包含Linux系统调用的小型C库?
浏览 0
提问于2015-01-26
得票数 1
1
回答
COM DLL -使用Mono而不是MS .NET框架
、
、
、
我有一个用C#编写的动态链接库,可以通过COM访问本地可执行文件(用Delphi编写)。现在我被要求使用Mono (在Windows上,而不是Linux上),而不是微软的.NET框架。 有可能做到吗?如果是,我该怎么做呢?
浏览 0
提问于2010-02-09
得票数 2
回答已采纳
3
回答
如何为Linux捆绑应用程序
、
、
、
、
我正在编写一个(闭源)应用程序,并将为所有三个主要平台(MacOS X、Linux和Windows)提供二进制文件。它在LGPL许可下使用Qt,所以我需要动态链接Qt库。我知道如何通过简单地为应用程序提供Qt动态库来捆绑MacOS和Windows应用程序,但我不确定如何在Linux上正确地做到这一点。 传统的做法是将应用程序作为包(.deb和.rpm)提供,并允许包系统解决依赖关系。应该使用这种方法吗?如果是这样的话,我应该针对哪些发行版(我假设是Ubuntu和Fedora)?如果有人有这方面的经验,我很有兴趣听听。
浏览 5
提问于2011-04-26
得票数 8
回答已采纳
3
回答
动态加载静态库?
、
、
可以在运行时动态加载Linux中的静态libary *.a吗? 我读过 ...both静态库和共享库可以用作动态加载的库。 如何动态加载静态库?
浏览 6
提问于2010-09-02
得票数 9
回答已采纳
1
回答
zOS中的动态链接
、
我必须在zOS中创建一个动态链接库。要传递给编译器的选项有哪些。 另外,如何检查zOS中的库是否动态链接依赖于其他库。我们在linux中有ldd,它显示了这种联系。我们在zOS的土地上有'ldd‘的等价物吗?
浏览 0
提问于2010-12-09
得票数 5
回答已采纳
1
回答
我们可以在窗口上使用.so文件吗?
、
、
、
我需要在windows和linux平台上为我的c++代码库动态创建和链接库。我知道DLL格式适用于windows,而.so则用于linux平台。但是我读到.so也可以在windows平台上链接。我的问题是,我能否创建一个通用动态库(.so)来在windows和linux上运行我的应用程序?如果是,怎么做?
浏览 3
提问于2016-01-18
得票数 1
回答已采纳
1
回答
同时输出gcc的-S开关。然后通过gnu汇编程序生成目标代码。现在我必须通过ld连接
、
、
、
、
如何使用静态链接?我已经使用Linux中的动态标准库做到了这一点。我把gcc的-S开关放进去了。然后通过gnu汇编程序生成目标代码。现在我必须通过Ld链接(静态)。 请教我怎么做?
浏览 4
提问于2014-11-26
得票数 0
3
回答
如何查找库依赖?
、
、
、
我在一台Linux机器上,在该机器上我没有root访问权限。这台机器上安装了Boost 1.36,但我需要更新版本的boost,所以我安装了Boost 1.62的本地版本。我正在用nvcc链接一些目标文件。该链接还包括大约20个第三方动态库。链接的输出结果是另一个动态库。 问题是:如果我在输出库上运行'ldd‘,它告诉我这个库依赖于libboost_system.so.1.36.0和libboost_system.so.1.62.0。 我搞不懂libboost_system.so.1.36.0是怎么进来的。其他动态库都不依赖于libboost_system.so.1.36.0 (我在所
浏览 2
提问于2017-05-04
得票数 0
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
回答已采纳
2
回答
静态库链接两次
我有以下设置: 静态库 链接到(1.)的动态库。 链接到(1.)的可执行文件。和(2.) 来自from静态库的代码现在被复制并呈现在动态库和可执行文件中。 问题: 数据(全局变量、静态类成员)是否也重复,可执行文件和dll是否看到相同的数据? Linux和Windows之间有什么区别吗? 你怎么解决这个问题? 编辑: 谢谢你的回答,我现在可以准确地解释我的情况了。 静态库没有导出/导入标志。动态图书馆有自己的符号导出。 Windows: 动态库有静态库的text+data段的副本。可执行程序不知道,动态库已经链接了静态库,因为静态库符号的非从外部可见。 Linux: 动态库
浏览 6
提问于2015-07-03
得票数 9
回答已采纳
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
回答已采纳
4
回答
gcc链接器错误:没有找到符号的版本节点
、
、
、
我正在尝试构建一个共享库,并得到以下错误: libavformat.so:没有找到符号av_dup_packet@LIBAVFORMAT_52的版本节点 ld:未能设置动态区段大小:坏值 有人知道这个错误意味着什么吗?主机是i 586-linux目标是arm-linux。 编辑:已解决,请参阅注释
浏览 1
提问于2010-06-28
得票数 4
回答已采纳
1
回答
在linux上使用私有C++运行时库
、
、
、
在Windows中,动态加载程序总是首先在加载的可执行文件路径中查找模块,这样就可以在不影响系统库的情况下拥有私有库。 Linux上的动态加载程序只在固定路径中查找库,也就是说它独立于所选的二进制文件。我需要GCC 5的溢出检查算术函数,但由于C++ ABI在4.9到5之间变化,一些应用程序变得不稳定,重新编译它们解决了这个问题。在等待我的发行版kubuntu升级默认编译器时,是否有可能让新编译的应用程序链接到新的运行时,而打包的应用程序仍然通过静态链接或模仿Windows行为的方式链接到旧库? 模拟它的一种方法是创建一个包装脚本。 #!/bin/bash LD_LIBRARY_PATH=$(
浏览 2
提问于2015-08-05
得票数 1
回答已采纳
1
回答
如何在Linux中从动态库(libsample.so)生成导入库(libsample.a)
在Linux上创建动态库之后,我希望从动态库(.so)生成一个导入库(.so)。我该怎么做呢?
浏览 4
提问于2010-08-05
得票数 5
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
回答
在android中没有链接的大型.a文件
、
我正面临这个问题,我正试图为一个android应用程序构建一个本地库。为此,我有一个静态库(.a),它被链接到动态库(.so)中。现在的问题是静态库太大(超过2GB)。当我编译动态库时,它试图与静态库链接,如果出现以下错误,它就会失败: d:/adt/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld.exe: fatal erro
浏览 2
提问于2014-04-07
得票数 1
回答已采纳
1
回答
什么时候在iOS中使用动态链接库?在iOS中使用动态库的优点是什么?
、
、
、
对于动态链接库、窗口中的和Linux与iOS之间的优势之间的区别,我感到很奇怪。 下面的⬇️句子是为了证明我为什么感到奇怪。 我了解到库可以分为静态库和动态库。 使用动态库的优点是允许其他应用程序使用相同的动态库( in Window,.dll file),这样可以减少每个应用程序的内存使用量,并且可以更容易地重新分发动态库而不是重新分发应用程序。实际上,在使用一些应用程序时,我可以体验到“没有XXX.dll文件”。 在Xcode中,当创建新项目时,我们可以选择框架和framework & library中的静态库。在创建项目后,我们可以选择如何成为Mach-O型的“可执行、动态库、静
浏览 4
提问于2021-04-21
得票数 2
回答已采纳
1
回答
vsts开发在动态vm上运行测试的最佳方法
、
、
我的vst持续集成流程是: 创建动态linux 将最新的构建工件复制到新的动态vm中。 在新的动态vm上运行一些脚本 在新的动态vm上运行测试 破坏动态vm 我使用Azure RG部署从arm模板创建动态vm, 但是我不确定如何复制最新的工件并在新vm上运行脚本和测试的最佳实践。 (动态vm不能出现在我的服务连接列表中,而且vst中的ps任务在linux中不起作用) 那么,如何访问我的最新工件并将其复制到动态vm中,并使用在动态vm上运行脚本和测试?
浏览 0
提问于2018-12-04
得票数 0
3
回答
在Windows上同时使用.so和.dll
、
、
、
我正在用C++在windows中编写一个程序,在这个程序中,用户可以编译动态链接库(windows)或共享目标文件(linux)形式的扩展。 在windows上,可以使用LoadLibrary函数加载动态链接库。在linux上加载.dlls,是否可以对windows上的.so文件执行同样的操作,反之亦然?
浏览 0
提问于2010-07-13
得票数 6
回答已采纳
1
回答
在idl call_external c++共享库中包括fftw
、
、
我正在制作一个c++共享库,以包含在linux上的IDL程序中。我正在使用call_external,这一切都很好。但是,我习惯于在我希望包含在库中的代码中动态链接fftw。代码很好地编译成一个库文件,但是当我试图运行它时,idl程序会出现错误“符号查找错误.未定义的符号:fftw_plan.” 我怀疑这是由于动态链接没有在共享库中工作,但不知道如何处理。我看过fftw文档和IDL帮助。我试过搜索主题,但这是一个小利基。 因此,在我的makefile中,我使用'FFTWFLAG=-lfftw3 -lm‘链接共享库,并使用 OneTurn.so: $(OBJECTS) $(CC)
浏览 0
提问于2019-05-17
得票数 0
1
回答
动态共享库--用于linux
、
我只有一个关于Linux共享库文件的问题。 我看到了许多与LinuxO.S 的动态共享库相关的链接 在上面的链接中提到了--包括库的文件: ctest.h 现在在LINUX中使用libdl构建函数-- dlopen,dlsym,dlclose。 我们真的需要为动态图书馆包括原型文件ctest.h吗? 请对以上职位提出一些建议。
浏览 7
提问于2012-12-02
得票数 2
回答已采纳
1
回答
Unix/Linux环境中的动态链接类型
、
、
、
在创建windows静态库时,我们只需创建一个应该包含在链接器路径中的.lib文件。 在创建windows共享库以及.dll时,我们还生成了一个.lib文件。这个lib文件包含由库公开的API的签名。 有两种使用此库的方法 我们可以直接引用项目中的库API,并在链接器属性中将路径添加到.lib文件中。有些人称它为静态链接动态库。 或者,我们可以在运行时显式加载动态库。在这种情况下,我们不需要为链接器指定lib文件路径。调用它动态链接的动态库。 我的问题是,对于Linux上的共享库,我们也有类似的东西吗?或者仅仅是静态库(.a)和共享库(.so)? 我知道如何使用gcc -l选项在linux上包
浏览 0
提问于2014-11-19
得票数 2
回答已采纳
2
回答
用github拉出应用程序创建AWS Linux实例
、
、
、
是否可以动态地创建AWS实例,以便从私有gihub存储库中提取源代码?我的主要障碍是github需要私钥,我应该在Linux实例上生成私钥,然后在站点上手动插入github配置文件。这能自动完成吗?
浏览 0
提问于2012-01-09
得票数 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
回答
在不同的.so中总是内联函数
、
、
、
、
在Linux中,如果我将动态库中的函数声明为gcc,然后动态加载该库,则该函数会被动态链接器内联吗? 我正在编译-O3中的动态库,并且没有传递任何链接时间优化标志-flto。 真正的问题是:当一个函数从另一个库中被调用时,它是否值得像往常一样在动态库中声明它呢?
浏览 9
提问于2017-07-25
得票数 1
回答已采纳
1
回答
是否有相当于Linux的dyld?
、
、
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
1
回答
如何将文件打包到Linux和Windows的一个可执行文件中?
、
、
、
我正在用Muon在Golang上创建一个桌面应用程序(使用Ultralight而不是Chromium),并为Linux和Windows交叉构建我的应用程序。目前,该应用程序运行良好,但它需要超光速库(*.dll用于Windows,*.so用于Linux)。但是我想把我的应用程序作为单一的可执行文件分发。如何创建两个可执行文件?第一个用于Linux的文件,它应该包含用于Linux的主可执行文件,并且只包含*.so库。第二个文件应该包含用于Windows的主可执行文件,并且只包含*.dll库。我怎么能这么做? 对此有什么CLI用途吗?(例如,在gitlab CI中使用Docker ),或者我可以通
浏览 5
提问于2021-11-18
得票数 0
回答已采纳
2
回答
加载共享库时未定义的符号
、
、
、
、
在我的程序中,我需要使用dlopen()动态加载共享库。程序和共享库都已成功地交叉编译为ARM体系结构,并在我的x86上安装了交叉编译器。但是,每当程序试图在ARM上运行时加载库时,它都会失败,从而导致以下错误: 未定义符号:_dl_hwcap 我找不到这个错误的罪魁祸首。 让我首先详细介绍共享库(libmyplugin.so)是如何构建在x86上的。我使用g++交叉编译器如下所示: /home/me/arm/gcc-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -march=armv7-a -mfloat-abi=hard -c -s
浏览 6
提问于2015-03-20
得票数 7
2
回答
dlopen()在Android上失败,但在Linux上工作
、
、
、
、
我试图在惰性模式下使用dlopen()动态加载特定的共享库。当然,共享库中有一些未解决的符号,但是懒散模式应该忽略它们。它在Linux上确实忽略了它们,并且一旦在运行时使用了符号,解析就会发生。 但是在安卓系统中,不工作,虽然我使用惰性模式,但dlopen()由于未解决的符号而失败。 这就是我说的代码 retval = dlopen(LOADLIB, RTLD_LAZY); 怎么回事?
浏览 4
提问于2013-09-12
得票数 0
1
回答
Visual studio中的静态和动态链接
、
、
、
我理解静态和动态连接的概念。在Windows平台上,.dll是动态库,.lib是静态库。 我的困惑:我做了一个项目,在这个项目中我必须使用OpenCV库。基本上,我必须使用以下5个OpenCV库: -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_videoio 为此目的,在该项目的属性中,我必须告诉编译器 VS 2012的Additional Library Directory中的库的路径,我还必须告诉链接器关于我想要用于该项目的.lib库。该项目编译后没有任何错误。但是当我试图运行这个项目
浏览 3
提问于2015-09-14
得票数 7
回答已采纳
1
回答
无法执行节点命令的二进制文件
、
、
当我执行:/bin/sh -xe节点-v时,会得到错误:节点:节点:无法执行二进制文件 请建议我需要做些什么来解决这个错误。 当我执行以下命令时: 文件/bin/bash输出:/bin/bash: ELF 64位LSB可执行文件x86-64,version 1 (SYSV),动态链接(使用共享库),用于GNU/Linux2.6.18 文件节点节点: ELF 64位LSB可执行文件,x86-64,version 1 ( GNU/Linux ),动态链接(使用共享库),用于GNU/Linux2.6.18,没有剥离
浏览 5
提问于2017-06-14
得票数 1
7
回答
我如何告诉cmake我想让我的项目静态链接库?
、
、
、
、
我正在尝试使用CMake构建一个基于OpenCV的项目,在Linux上运行。到目前为止,我的CMakeLists.txt文件看起来像这样 FIND_PACKAGE (OpenCV REQUIRED) ... TARGET_LINK_LIBRARIES (my-executable ${OpenCV_LIBS}) 但这会导致动态链接库。如何链接到静态库?
浏览 0
提问于2010-09-21
得票数 25
回答已采纳
1
回答
需要GME在Linux下的Unity开发环境的mono动态库,请提供?
、
、
、
、
Unity有Linux的版本,而GME没有Linux的动态库,导致Linux下不但不能编译运行,导出项目也是各种报错,望检查一下
浏览 319
提问于2019-05-30
1
回答
生成包含dll和编译器的新项目
、
我是一个关于linux中dll使用的问题。我有动态链接库和.h文件,在windows下工作良好。但是现在我需要在linux下运行这个程序。如果我编写.cpp文件,该函数将调用该dll文件函数。我是否可以将此.cpp文件编译为程序集或.so文件。然后我可以使用.so文件没有原始的动态链接库文件?
浏览 9
提问于2018-08-25
得票数 0
1
回答
创建可部署的CMake dynamic SDL2应用
、
、
、
、
创建一个可以跨Linux和Windows分发带有动态库的SDL2可执行文件的CMakeLists.txt文件最简单的方法是什么?也就是说,我正在尝试获取一个cmake文件,该文件将向项目中的build目录发出一个可执行文件,如下所示: #include "SDL.h" int main() { SDL_Init(); SDL_Quit(); return 0; } 到目前为止,我只看到了如何链接到系统库,但这对于Windows来说是不一致的,它不会像Linux自动使用包管理器那样自动注册库的系统路径。我知道使用Make可以在项目中指定lib目录,并在编译
浏览 0
提问于2015-04-02
得票数 0
1
回答
RPi交叉编译:如何链接动态库
、
、
、
我尝试交叉编译从一个x86_64窗口机器到一个Raspberry 4B运行Raspberry,我已经设法用我的工具链运行一个"hello world“。现在,我想要创建更复杂的程序,其中包括动态库,而我未能创建一个能够正确链接动态库的makefile。所需的所有库都可以在主机上和目标设备上使用。当我链接主机上的makefile时: LIBRARIES := C:/SysGCC/raspberry64/aarch64-linux-gnu/sysroot/lib/aarch64-linux-gnu/libdl.so.2 程序编译正确,但目标上的执行会产生错误:“加载共享库时出错:没有这样的
浏览 4
提问于2022-03-01
得票数 1
1
回答
解析linux配置文件的库?
、
、
我正在做一个Linux项目。我的应用程序有一个配置文件。配置文件中的内容不是固定的,即配置文件中的内容可能会增长甚至下降。应用程序不知道文件中可能的密钥,它都是动态的。配置文件的格式为 enabled = true xxxx = QQQQ yyyyy = WWWW . . . 我的问题是, 配置文件有更好的格式吗? 是否有ant库来解析配置文件?
浏览 1
提问于2015-02-26
得票数 1
1
回答
什么是cmake中的模块库类型?
、
、
cmake 文档说, 共享库是动态链接并在运行时加载的。模块库是没有链接到其他目标的插件,但可以使用类似dlopen的功能在运行时动态加载。 实际上,我可以看到SHARED和MODULE类型目标在Linux上生成.so动态库。.so库是动态链接的,在运行时加载并使用dlopen()进行映射。这两类目标有何不同?
浏览 9
提问于2017-04-18
得票数 10
1
回答
链接静态库中以符号链接的动态库: macOS vs Linux
、
、
、
我正在将一个Linux应用程序移植到macOS上,而且链接行为有一个不同之处,我花了一些时间才发现它本身。该项目使用基于CMake的两阶段构建过程:一个CMake树创建一个动态库,该库链接到稍后创建的第二个树中创建的静态库。创建动态库时,静态库还不存在。这在Linux上是可行的:使用静态库中的符号创建动态库,并对它们进行前向声明。在构建第二棵树时,动态库将被链接到一个可执行文件,该可执行文件也会链接到静态库,这样一切都可以正常工作。这在macOS上不起作用,因为在第一个CMake树中,编译器在动态库的链接步骤中失败,因为来自第二个树的静态库还不存在。 我已经将我的应用程序简化为一个最小的例子(
浏览 29
提问于2020-01-10
得票数 2
回答已采纳
1
回答
当动态链接时,它将在哪里搜索库,以及如何更改这个库?
、
、
、
当我在基于Unix/Linux的系统上动态链接时,当我执行程序时,它将在哪里尝试查找库文件,以及如何更改它?我正在使用GNU/G++编译器。
浏览 8
提问于2013-10-21
得票数 0
回答已采纳
2
回答
"C“中的跨平台动态库(微软和gcc)
、
、
、
最终,我希望得到一组源文件,它们可以编译成Windows或Linux动态库,具体取决于编译它的平台。 问题似乎是Windows要求对头文件声明和源文件定义都进行注释。DLL Tutorial For Beginners Linux动态链接库似乎只在源文件定义中需要注释。 我可以#定义一个预处理器字符串来处理源代码定义的差异。 #if (_MSC_VER >= 1900) // (Visual Studio 2015 version 14.0) #define EXPORTED __declspec(dllexport) #else #define EXPORTED __att
浏览 43
提问于2020-07-01
得票数 1
2
回答
在linux上加载多个类似的共享库
、
、
、
我正在编写创建“模型”的代码。模型是从XML文件创建的,其表示的一部分是动态生成的C代码。这段C代码被动态编译到一个动态加载的共享库中(使用POCO共享库类)。共享库主要包含小函数,模型创建的一部分是填充指向这些函数的函数指针。所有这些都运行得很好。然而,同时创建多个模型会导致问题。 我认为这与Linux上的动态加载如何工作有关,以及每个共享库都包含具有相同名称的函数的事实。这是PIC造成的吗?从共享库函数中检索数据时,问题本身并不明显。 因此,问题是,如何在linux上加载多个(数千个)共享库,其中包含相同的函数名? 上面的方法在windows上运行得很好,在windows中,动态加载的库数
浏览 0
提问于2013-03-01
得票数 4
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux查看日志
Linux库概念,动态库和静态库的制作,如何移植第三方库
Linux下查看CPU信息
Linux 查看 SELinux 的状态
警惕利用Linux预加载型恶意动态链接库的后门
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券