腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
2
回答
静态库链接两次
我有以下设置: 静态库 链接到(1.)的动态库。 链接到(1.)的可执行文件。和(2.) 来自from静态库的代码现在被复制并呈现在动态库和可执行文件中。 问题: 数据(全局变量、静态类成员)是否也重复,可执行文件和dll是否看到相同的数据? Linux和Windows之间有什么区别吗? 你怎么解决这个问题? 编辑: 谢谢你的回答,我现在可以准确地解释我的情况了。 静态库没有导出/导入标志。动态图书馆有自己的符号导出。 Windows: 动态库有静态库的text+data段的副本。可执行程序不知道,动态库已经链接了静态库,因为静态库符号的非从外部可见。 Linux: 动态库
浏览 6
提问于2015-07-03
得票数 9
回答已采纳
3
回答
在Windows上同时使用.so和.dll
、
、
、
我正在用C++在windows中编写一个程序,在这个程序中,用户可以编译动态链接库(windows)或共享目标文件(linux)形式的扩展。 在windows上,可以使用LoadLibrary函数加载动态链接库。在linux上加载.dlls,是否可以对windows上的.so文件执行同样的操作,反之亦然?
浏览 0
提问于2010-07-13
得票数 6
回答已采纳
1
回答
什么是"Windows不支持适当的动态链接?“
、
、
、
我已经阅读了Linux dlopen()和dlsym()的文档,它们分别打开动态库并在库中加载符号。 这些调用似乎相当于Windows的LoadLibrary()和GetProcAddress()。 我在这篇文章中读到"Windows不支持适当的动态链接“:。 Linux和Windows动态库调用不同的原因是什么? Linux上的动态库能够在可执行文件中加载符号,这是唯一的区别吗?但是这意味着可执行文件也是Linux上的库,因为dlopen()在动态库上运行。
浏览 2
提问于2017-02-02
得票数 0
回答已采纳
1
回答
可执行文件从终端运行,但在应用程序中失败
、
、
、
我已经创建了一个示例项目来在Linux Ubuntu中测试我的动态库(.so)。 当从终端启动时,程序编译正确并运行。它按预期工作-在终端./Main中查找所有依赖项和函数。 我的环境变量LD_LIBRARY_PATH包含a_dependent_library.so所在的目录 请给我建议。
浏览 0
提问于2017-01-18
得票数 0
2
回答
我可以在makefile中添加动态地址吗?
、
、
我正在使用以下命令创建一个共享库:abaqus make library=myCode directory='/usr/abaqus' 在目录( /usr/ abaqus /文件夹)中,我有一个abaqus环境文件,其中包含额外的共享库。下面是环境文件中的link_sl参数:link_sl='LINK /nologo %B /usr/Dassault Systemes/SimulationServices/V6R2019x/linux_a64/code/lib/ABQSMAOdbApi.so /usr/Dassault Systemes/SimulationServi
浏览 3
提问于2020-02-11
得票数 0
2
回答
为什么linux不在同一个文件夹中搜索共享库
、
我知道linux通常在系统中的特定文件夹中搜索动态库,比如/lib, /usr/lib/, /usr/local/lib。如果找不到运行中的程序所需的共享库,那么它将显示一个错误。 我的问题是:为什么linux不实现在当前文件夹中查找库的特性。假设在上面提到的所有文件夹中搜索共享库之后,它将搜索当前文件夹中的共享库,然后才说没有找到该库。 这个特性不是很容易实现吗??还是我漏掉了什么?
浏览 3
提问于2016-12-10
得票数 0
回答已采纳
1
回答
如何使buildbot在mac中找到动态库?
、
、
我使用不同的机器构建和运行项目使用buildbot。在linux中,可以找到动态库(我听说了一些关于rpath的内容),但是在构建和运行之后在mac中找到了动态库。我用来运行的二进制文件找不到二进制所需的动态库。我可以使用导出来说明库在哪里,但我想要某种方法来表示mac机器,即那些库所在的位置。有谁能帮我这个忙吗,我试着设置 env={"LD_LIBRARY_PATH": "/usr/local/lib"} 但那里也没有运气。 编辑: 艾伯纳特说的是对的。我唯一需要做的更改是在LD_LIBRARY_PATH前面添加DY,所以它将是(如果您想要添加更多)。
浏览 5
提问于2013-09-11
得票数 0
回答已采纳
1
回答
在Mac OSX中加载和卸载共享库
如果这个问题以前在这个论坛上被重复了,我很抱歉。我有一个问题,在那里,加载和卸载dylibs不是如预期的Mac(特别是卸载部分)。问题是,如果我有一个可执行文件,如果我加载了一个共享库,比如A.dylib,然后使用加载的共享库来加载一个库,比如B.dylib。当我稍后尝试卸载库B.dylib时,没有返回错误代码(返回的int值是0-因为我使用常规的dlopen和dlclose函数来加载和卸载库,0表示卸载成功),但是当我检查以确保使用活动监视器或b.dylib的lsof仍然在内存中时。 现在我们正在为windows,linux和mac移植这段代码。Windows和Linux运行正常,但只有ma
浏览 2
提问于2012-10-17
得票数 5
回答已采纳
1
回答
静态变量-未定义引用
、
、
、
今天,我遇到了一个关于静态变量/函数的喜欢问题。首先,让我给您展示一下代码: Trace.h class Trace : public QObject { Q_OBJECT public: explicit Trace(QObject *parent = 0); static void setLogFilePath(QString path) { logFilePath = path; } QString getLogFilePath(); private: static QString logFilePath; }
浏览 3
提问于2014-06-30
得票数 1
回答已采纳
3
回答
C应用程序中的dlopen和dlclose内存管理
、
、
、
、
我使用dlopen加载一个动态库"lib1.so“,并调用一个公开的函数,比如A1,A1函数使用malloc分配100kb的动态内存,但没有释放它,在主函数中,我再次调用所有的dlclose。dlopen,调用函数A1,dlclose 我重复这个步骤10次,Purify报告这是1000KB的内存泄漏,valgrind报告间接丢失了1000KB。 你能建议100KB* 10次= 1000KB,这是真正的内存泄漏吗?当我们调用dlclose时,所有分配给动态库的内存都会被自动释放。 操作系统: Linux编程局域网:c
浏览 4
提问于2011-10-31
得票数 1
3
回答
动态加载静态库?
、
、
可以在运行时动态加载Linux中的静态libary *.a吗? 我读过 ...both静态库和共享库可以用作动态加载的库。 如何动态加载静态库?
浏览 6
提问于2010-09-02
得票数 9
回答已采纳
1
回答
我可以动态地链接到linux的二进制构建来使用.Net和Mono吗?
、
、
、
、
我正在尝试为使用SPI的Raspberry构建一个.Net应用程序。用于Windows 10 IoT的SPI驱动程序将放慢速度。因此,我是否使用Mono将项目迁移到Linux (因为我的代码是用.Net编写的) 由于我在Windows上的IoT速度有问题,所以我考虑用c++编写SPI代码,并将它们动态地链接到.Net应用程序。但我很难在网上找到如何做到这一点的信息。这里有人知道吗? 总结一下这个问题。我希望在Linux上使用mono运行我的.Net应用程序,并动态链接我将用c++编写的库。 寻求任何帮助!
浏览 4
提问于2015-10-09
得票数 0
回答已采纳
1
回答
zOS中的动态链接
、
我必须在zOS中创建一个动态链接库。要传递给编译器的选项有哪些。 另外,如何检查zOS中的库是否动态链接依赖于其他库。我们在linux中有ldd,它显示了这种联系。我们在zOS的土地上有'ldd‘的等价物吗?
浏览 0
提问于2010-12-09
得票数 5
回答已采纳
1
回答
带有静态链接boost库的arm交叉编译
、
、
、
、
我所拥有的: 一个使用boost库的c++项目 该项目是使用cmake和链接动态增强构建的。 一种带有x64的linux机器 带有arm处理器和linux的开发板 我想要的: 一个CMake项目执行以下操作: 一个用于x64体系结构的构建(用于gtest和本地开发) arm架构的另一个构建 带有静态链接boost库的 这有可能吗?如果有,怎么做? 主要问题是告诉cmake,对于第二个构建,它应该使用另一个(这次是arm)预编译的boost库来链接。不知道该怎么做。
浏览 2
提问于2013-12-28
得票数 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
回答
我们可以在窗口上使用.so文件吗?
、
、
、
我需要在windows和linux平台上为我的c++代码库动态创建和链接库。我知道DLL格式适用于windows,而.so则用于linux平台。但是我读到.so也可以在windows平台上链接。我的问题是,我能否创建一个通用动态库(.so)来在windows和linux上运行我的应用程序?如果是,怎么做?
浏览 3
提问于2016-01-18
得票数 1
回答已采纳
2
回答
在OS X上使用C语言从dlopen()动态库访问主程序全局变量
、
、
、
我正在维护一个具有一些类似插件功能的,它是通过运行时加载的动态模块实现的。 具体地说,因为它是一个Gtk+应用程序,所以我使用的是gmodule,但这个问题也适用于基于dlfcn.h / dlopen()的动态库加载。 我的主程序有一个全局结构变量,用来保存一些全局信息。我希望这些信息对动态加载的插件中定义的函数可用。 在Linux上,我可以直接引用这个全局变量--它工作得很好,我猜是gcc或链接器负责将全局变量从主程序导出到动态库。 问题是,这在Mac OS X上是行不通的,有没有办法在OS X上做到这一点呢? 如果没有,有没有一种更“最佳实践”的方法来将全局信息暴露给动态加载的库?
浏览 3
提问于2009-12-20
得票数 8
回答已采纳
3
回答
如何在Ubuntu中设置$LD_LIBRARY_PATH?
、
、
我需要这样做: 在linux上,我们必须找到一些不位于标准位置的动态库。我们必须将$LD_LIBRARY_PATH设置为/path/ to /sdk/lib 我如何在Ubuntu10.10中做到这一点?
浏览 0
提问于2010-11-14
得票数 18
回答已采纳
3
回答
链接器如何在使用不同编译器编译的库中选择动态库
、
、
我在C++中有一个项目,目前没有链接到任何外部动态库。我正在考虑在未来使用一些boost库,这些库需要构建(而不是只使用头文件)。目前,在开发阶段,我使用三个不同的工具链构建我的项目:g++、LLVM/Clang++和Intel C++,平台是Linux。这些编译器AFAIK彼此是二进制兼容的,例如g++编译的应用程序可以使用英特尔C++编译的动态库。 我构建了boost二进制文件,并将它们安装到不同的文件夹中。例如build_gcc、build_icc。然后,我将这些文件夹的路径添加到系统LIBRARY_PATH中。问题是:如果我现在使用g++或Intel C++构建我的项目,并链接一些动态
浏览 2
提问于2012-10-03
得票数 0
回答已采纳
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
回答已采纳
1
回答
将静态库链接到exe和共享库后的分段错误
、
、
、
我有一个静态链接glib库和动态链接共享库的程序,而共享库又静态地链接相同的glib库。当我运行这个程序时,我会得到一个分段错误。在gdb中调试之后,我发现在glib中定义了一个正在设置的global static变量,并且它在一个调用跟踪中和一个以后的调用跟踪中具有不同的值。然后我注意到变量地址也不同。那么,似乎有两个副本的global static变量?可执行文件不应该覆盖共享库中的符号吗?所以在动态链接期间,可执行文件中只有一个全局静态变量? 故事的另一部分是,还有另一个可执行文件可以执行与上面相同的操作,它似乎运行良好--即没有分段错误(尚未调试以查看不同的代码路径是否加载了相同的静态
浏览 3
提问于2021-06-11
得票数 1
回答已采纳
2
回答
将包含32位值的uint64_t传递给其参数实际上是uint32_t的外部函数安全吗?
、
、
我正在开发一个跨平台的程序,从一个带有C链接的动态库中调用一个函数。我需要支持这个动态库的多个版本,但在我需要支持的两个版本之间,有一个函数参数已从uint32_t更改为uint64_t。 如果我传递这个函数--包含仍可表示为uint32_t的值的uint32_t,即使该函数的参数实际上是uint32_t,也是安全的吗? 更具体地说: 如果编译到动态库中的函数的源是: extern "C" void foo(uint32_t param) { ... } 对我来说,使用这样的函数安全吗: extern "C" void foo(uint64_t); u
浏览 4
提问于2022-05-03
得票数 5
回答已采纳
4
回答
gcc链接器错误:没有找到符号的版本节点
、
、
、
我正在尝试构建一个共享库,并得到以下错误: libavformat.so:没有找到符号av_dup_packet@LIBAVFORMAT_52的版本节点 ld:未能设置动态区段大小:坏值 有人知道这个错误意味着什么吗?主机是i 586-linux目标是arm-linux。 编辑:已解决,请参阅注释
浏览 1
提问于2010-06-28
得票数 4
回答已采纳
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
2
回答
在Windows上应该如何使用开源库?
、
、
、
有许多可以用Visual Studio编译的开源库。我正在将一个程序从Linux移植到Windows,但它依赖于许多库。我不知道Windows上关于库的最佳实践是什么。 在Linux上,这些库通常是发行版的一部分。例如,要在Debian上使用,您只需安装,包含文件和库(静态和动态)将自动安装并可用于您的程序。 如果您需要与发行版提供的版本不同的版本,可以在主目录中编译它,将其安装到~/include和~/lib,并设置适当的,以便编译器在其搜索路径中包含这些目录。 在Windows上使用作为源代码分发的库的最佳方式是什么?如果我动态链接而不是静态链接,是否有一种简单的方法可以将所需的DLL复制
浏览 0
提问于2011-01-17
得票数 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
回答
一个程序使用的多个共享库可以使用不同的静态链接libc吗?
、
、
、
、
在Windows上可以这样做(虽然不建议这样做,因为不同c库实例之间的pass标准库对象可能有问题),例如 每个可执行映像(EXE或DLL)都可以有自己的静态链接CRT,也可以动态链接到CRT。静态地包含在特定映像中或由特定映像动态加载的CRT版本取决于它所用的工具和库的版本。一个进程可以加载多个EXE和DLL映像,每个映像都有自己的CRT。 可以在Linux上完成吗? 是假的吗?但是像Linux这样的一般系统不应该有这样的限制,对吗?例如,如果代码库A和代码库B确实需要不同版本的libc才能很好地工作,并且假设它们都有非常简单的客户端C风格API (即在这些API中没有指针参数),那
浏览 5
提问于2021-04-08
得票数 0
1
回答
什么时候在iOS中使用动态链接库?在iOS中使用动态库的优点是什么?
、
、
、
对于动态链接库、窗口中的和Linux与iOS之间的优势之间的区别,我感到很奇怪。 下面的⬇️句子是为了证明我为什么感到奇怪。 我了解到库可以分为静态库和动态库。 使用动态库的优点是允许其他应用程序使用相同的动态库( in Window,.dll file),这样可以减少每个应用程序的内存使用量,并且可以更容易地重新分发动态库而不是重新分发应用程序。实际上,在使用一些应用程序时,我可以体验到“没有XXX.dll文件”。 在Xcode中,当创建新项目时,我们可以选择框架和framework & library中的静态库。在创建项目后,我们可以选择如何成为Mach-O型的“可执行、动态库、静
浏览 4
提问于2021-04-21
得票数 2
回答已采纳
1
回答
静态变量和全局变量在Linux上的动态库和静态库中都显示不同的地址?
、
、
、
、
我在CentOS 6.5上遇到过。正如我在网上搜索的那样,当使用动态库时,静态变量在Windows和Linux上的行为不同。也就是说,Windows将导致变量的复制,而Linux则不会像下面这样:。 然而,当我编写一个小程序来验证这一点时,我发现Linux也会导致重复。这是我的小程序,包括四个文件: (1) A.h . #ifndef A_H # A_H #包括静态int b;extern "C“类A{ public: int mem;A() {printf(”A的地址:%p\n“);printf(”B的地址:%p\n",&b);} void (){ printf(&
浏览 2
提问于2015-11-10
得票数 2
回答已采纳
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
回答已采纳
1
回答
CMake测试在MacOS上找不到库
、
、
、
我有一个带有单元测试的简单库。该库可以构建为静态链接库或动态库。该库为Windows、Linux和MacOS构建。 该库使用CMake (与Qt一起使用),并具有ctest单元测试。 库是如何生成的,单元测试是如何调用的: cmake -DCMAKE_BUILD_TYPE=Debug path/to/sources cmake --build . --target all cmake --build . --target test 除了MacOS之外,这一切都很好。当构建库是动态链接库时,单元测试将找不到库。 Start 110: UnitTest 110/119 Test #110:
浏览 0
提问于2018-08-10
得票数 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
2
回答
如何链接本地目录下的共享库,OSX vs Linux
、
、
、
我在沙箱目录中安装了一些共享/动态库。我正在构建一些链接到库的应用程序。在这方面,我遇到了OSX和Linux之间的差异,我不确定(最好的)解决方案是什么。 在OSX上,库本身的位置被记录到库中,这样,如果您的应用程序链接到它,可执行文件就知道在运行时在哪里查找该库。这与我的沙箱的工作方式一样,因为可执行文件在那里查找,而不是系统范围的安装路径。 在Linux上,我不能让它工作。显然,库位置并不存在于库本身中。据我所知,您必须将包含库的文件夹添加到/etc/ld.so.conf,并通过运行ldconfig重新生成ld缓存。 这似乎不适合我,因为我的库位于用户的主目录中。看起来ldconfig并不
浏览 3
提问于2010-10-27
得票数 2
回答已采纳
1
回答
在不同的.so中总是内联函数
、
、
、
、
在Linux中,如果我将动态库中的函数声明为gcc,然后动态加载该库,则该函数会被动态链接器内联吗? 我正在编译-O3中的动态库,并且没有传递任何链接时间优化标志-flto。 真正的问题是:当一个函数从另一个库中被调用时,它是否值得像往常一样在动态库中声明它呢?
浏览 9
提问于2017-07-25
得票数 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
回答已采纳
10
回答
如何从库函数访问c++中的argc和argv
、
、
我正在编写一个库,它将在C++中动态加载。 我想从我的代码中读取argc和argv (出于调试原因),但是我没有访问main函数的权限。有没有办法检索命令行( Windows和Linux解决方案都不错)。 谢谢,丹
浏览 0
提问于2008-10-01
得票数 9
回答已采纳
1
回答
哪些库出现在/proc/$PID/pmaps中?
、
、
、
、
在Linux上,您可以检查/proc/$PID/pmaps来查看特定程序加载的库,程序可以打开/proc/self/pmaps来检查它自己加载的库。 我知道pmaps只包含动态库,显然内核不能预测以后我们可能打开哪些库,所以我希望这些库不会包含在/proc/self/map中。但我不确定还有其他几种情况: 库在构建时已经被链接了,但我们还没有调用任何函数吗?我的理解是Linux将链接符号延迟到第一次使用,所以我不确定它们是否会出现。 pmaps是否包含递归使用的所有库?例如,如果我查看pmaps中的每个库并在其上运行ldd,然后在这些库上运行ldd,那么我不应该在原始的pmaps中找到
浏览 5
提问于2013-02-08
得票数 0
回答已采纳
1
回答
在启动时运行Google Dataflow作业
、
、
、
、
我们的Google Cloud Dataflow管道程序调用一些动态链接到*.so文件的库,所以要运行它,我需要设置linux环境变量LD_LIBRARY_PATH。有一种方法可以做到这一点:,但我想知道有没有一种方法可以在执行流水线之前使用一些运行shell脚本的作业来做到这一点?
浏览 17
提问于2017-07-27
得票数 0
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
1
回答
动态库在内存中的实际位置在哪里?
、
、
、
、
在linux平台上, 有人能告诉我内存中的动态库在哪里吗? 我了解到动态库是根据这个过程的获取映射到进程的, 这是真的吗? 谢谢!
浏览 0
提问于2013-11-20
得票数 0
回答已采纳
1
回答
需要GME在Linux下的Unity开发环境的mono动态库,请提供?
、
、
、
、
Unity有Linux的版本,而GME没有Linux的动态库,导致Linux下不但不能编译运行,导出项目也是各种报错,望检查一下
浏览 324
提问于2019-05-30
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
回答
更新没有root权限的ldconfig缓存
、
、
、
、
$ uname -a Linux xhost10.bcgsc.ca 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux $ /sbin/ldconfig --version ldconfig (GNU libc) 2.5 我在本地安装了几个二进制文件和库,因为我没有root访问权限。 其中一些程序需要在运行时动态链接到非标准位置的共享库。 执行时,程序返回: $ path/to/cc1 path/to/cc1: error while loading shared libraries
浏览 4
提问于2013-07-17
得票数 13
1
回答
什么是cmake中的模块库类型?
、
、
cmake 文档说, 共享库是动态链接并在运行时加载的。模块库是没有链接到其他目标的插件,但可以使用类似dlopen的功能在运行时动态加载。 实际上,我可以看到SHARED和MODULE类型目标在Linux上生成.so动态库。.so库是动态链接的,在运行时加载并使用dlopen()进行映射。这两类目标有何不同?
浏览 9
提问于2017-04-18
得票数 10
1
回答
生成包含dll和编译器的新项目
、
我是一个关于linux中dll使用的问题。我有动态链接库和.h文件,在windows下工作良好。但是现在我需要在linux下运行这个程序。如果我编写.cpp文件,该函数将调用该dll文件函数。我是否可以将此.cpp文件编译为程序集或.so文件。然后我可以使用.so文件没有原始的动态链接库文件?
浏览 9
提问于2018-08-25
得票数 0
1
回答
链接静态库中以符号链接的动态库: macOS vs Linux
、
、
、
我正在将一个Linux应用程序移植到macOS上,而且链接行为有一个不同之处,我花了一些时间才发现它本身。该项目使用基于CMake的两阶段构建过程:一个CMake树创建一个动态库,该库链接到稍后创建的第二个树中创建的静态库。创建动态库时,静态库还不存在。这在Linux上是可行的:使用静态库中的符号创建动态库,并对它们进行前向声明。在构建第二棵树时,动态库将被链接到一个可执行文件,该可执行文件也会链接到静态库,这样一切都可以正常工作。这在macOS上不起作用,因为在第一个CMake树中,编译器在动态库的链接步骤中失败,因为来自第二个树的静态库还不存在。 我已经将我的应用程序简化为一个最小的例子(
浏览 29
提问于2020-01-10
得票数 2
回答已采纳
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
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
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
linux 环境变量
Linux库概念,动态库和静态库的制作,如何移植第三方库
Linux系统编程 条件变量
linux怎么设置环境变量
警惕利用Linux预加载型恶意动态链接库的后门
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云直播
活动推荐
运营活动
广告
关闭
领券