问题标签 [shared-libraries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
699238 浏览

linux - ld 找不到现有的库

我正在尝试在此 Debian lenny 系统上将应用程序与 g++ 链接。ld 抱怨找不到指定的库。这里的具体示例是 ImageMagick,但我在其他一些库中也遇到了类似的问题。

我用以下方式调用链接器:

ld抱怨:

但是,libmagic 存在:

我如何进一步诊断这个问题,可能出了什么问题?我在做一些完全愚蠢的事情吗?

0 投票
3 回答
1031 浏览

python - 在应用程序之间共享/管理我们内部 python 库的最佳方式

我们公司 (xyz) 正在将我们的大量 Flash 代码迁移到 Python。

在 Flash 中,我们的 Flash 应用程序之间有一个共享库 - 包 xyz。我们可以对包进行更改,而不必担心在部署其他应用程序时会破坏它们,因为 Flash 会编译它们的代码并包含库的内容。我们通过 RPM 部署最终的 SWF,我们就完成了。App1 和 App2 的更新永远不会破坏 App3。

您将如何在共享库依赖项 Python 中处理此问题。

App1、App2 和 App3 都可能需要 xyz-lib.rpm,并且都使用相同的库文件,但是每次有新库时,都必须针对 App1、2、3 显式测试更新的 xyz-lib.rpm ,这只是繁重的。

我目前最喜欢的解决方案——我可以让 app1.rpm 包含打包时的库——实际上是库的某种静态链接。然而,这感觉很不雅。(虽然唯一的额外成本是硬盘空间==便宜。)

我知道共享库的可靠管理可能是最好的解决方案,但我一直在努力考虑到所有开发人员都是人类,并且会犯错误。我们会犯错误,我不希望 app1 的部署破坏 app2 和 app3 - 它只是要测试和调试更多。

0 投票
4 回答
401 浏览

c# - Mono 在客户端和服务器上共享代码。.

我们正在尝试提出我们的客户端和服务器标准,并且存在很大的争论。一种思想流派是 C# 客户端和 Java 服务器使用某种类型的专有消息库来共享数据对象(想想类似 XML 的结构......)

此模型的问题在于,如果您在服务器上也使用 C#,则需要复制大量代码(验证、解析),这些代码可以简单地重用。如果大力推动使用 linux 机器,那么 mono 不会支持您的目标。.

其他人有这个困境吗?

0 投票
1 回答
514 浏览

linux - Linux lib / include 交叉编译库的组织?

我们正在为桌面 Linux 下的嵌入式 Linux 目标交叉编译应用程序。出于测试和其他目的,我们在应用程序中使用静态链接库。我们使用的测试库是CMockery

我的问题是:考虑到我们正在交叉编译,CMockery 的静态库和包含文件应该在哪里?

如果我们不进行交叉编译,则应该进入 /usr/local/lib

我们团队的一些建议是:

  • /opt/google/lib 和 /opt/google/include
  • /opt/ embeddedLinuxDistro /usr/local/share/google/lib(包括)
  • /usr/local/ arch /lib (包括)

    任何指针表示赞赏!

  • 0 投票
    3 回答
    18820 浏览

    asp.net - ASP.NET 网站的 BIN 目录和参考资料

    想象一下以下解决方案:

    • 网站 ABC.com(不是 Web 应用程序)
    • BLL(单独程序集中的业务逻辑层)
    • DTO(自己程序集中的 dto 对象)
    • DAL(它自己的程序集中的数据访问层)。

      1. BLL 引用了 DAL。
      2. BLL 具有对 DTO 层的引用。
      3. 网站项目引用了 BLL。

    编译网站工程时,BIN目录下会出现以下DLL:
    BLL.dll
    DTO.dll
    DAL.dll

    当一个人去预览站点时,会发生一个错误,因为没有必要的程序集引用......现在如果右键单击网站项目,添加引用,并明确添加对缺少的程序集的引用,它会正常工作。

    在我看来,ASP.NET 提取了在网站中添加/引用的引用程序集的引用程序集。

    为什么需要对引用的引用添加显式引用...?抱歉,如果我的措辞不正确或令人困惑。

    0 投票
    5 回答
    7206 浏览

    linux - 将共享库打包到精灵中

    是否有一个实用程序可以将精灵需要的所有SO 转换为静态然后将精灵转换为免费的 SO?

    0 投票
    2 回答
    1314 浏览

    exception - 来自 DLL/共享库的异常

    假设您正在开发一个包含要通过 DLL 导出的类的库(在 Windows 上,或类似的共享库,如 Linux ELF 共享库)。这些类的成员函数从标准库或库定义的异常中抛出异常。

    在 DLL 中编码以向映射 DLL 地址空间的模块抛出异常是完全安全的吗?在向客户端模块抛出异常的共享库中开发软件组件时要考虑哪些因素?

    非常感谢你。

    0 投票
    1 回答
    2621 浏览

    c++ - dlopen 在具有静态成员的库上在构造函数中引发异常 - 导致中止

    我正在尝试使用 dlopen 函数加载动态库。该库包含一个静态对象,该对象在其构造函数中引发异常。我在 dlopen 调用周围有一个“try-catch(...)”块,但它没有捕获异常,我只看到打印了“Abort”。

    我怎样才能捕捉到这个异常?

    0 投票
    3 回答
    13864 浏览

    c++ - 如何在 C 或 C++ 中获取/链接外部函数?

    编辑: 我想我应该澄清一下,以防万一。我在 AIX Unix 机器上,所以我使用的是 VAC 编译器——没有 gnu 编译器。 结束编辑


    我对 C/C++ 很生疏,如果这是一个简单的问题,请原谅我。

    我想从我的一些 C 程序中取出常用功能,并将它们放入共享库或共享对象中。如果我在 perl 中执行此操作,我会将我的 subs 放在 perl 模块中,并在需要时使用该模块。

    举个例子,假设我有这个功能:

    显然这不是一个真实世界的例子,但如果我想分享那个功能,我将如何进行?

    我很确定我有两个选择:

    1. 将我的共享函数放在一个文件中,并在编译时将其与我的主程序一起编译。如果我对共享函数进行了更改,我将不得不重新编译我的主程序。
    2. 将我的共享函数放在一个文件中,并将其编译为共享库(如果我的术语正确的话),并将我的主程序链接到该共享库。我对共享库所做的任何更改(在编译后)都将在运行时集成到我的主程序中,而无需重新编译我的主程序。

    我的想法正确吗?

    如果是这样,我该如何完成这两种方法中的一种/两种?我进行了很多搜索,似乎找到了如何将自己的程序链接到其他人的共享库的信息,但没有找到如何创建自己的共享函数并以可以在自己的程序中使用它们的方式编译它们的信息.

    非常感谢!

    布赖恩


    编辑:

    结论

    感谢大家的帮助!我想我会在这篇文章中添加对我有用的东西(对于 AIX 上的动态共享库),以便其他人可以受益:

    我编译我的共享函数:

    然后使其成为共享对象:

    然后将其链接到另一个程序:

    另一条评论帮助我找到了这个链接,这也有帮助:http: //publib.boulder.ibm.com/infocenter/comphelp/v7v91/topic/com.ibm.vacpp7a.doc/proguide/ref/compile_library.htm

    再次感谢所有帮助过我的人!

    0 投票
    5 回答
    32180 浏览

    linker - 链接共享库时限制符号的可见性

    某些平台要求您向链接器提供共享库的外部符号列表。但是,在大多数 unixish 系统上,这不是必需的:默认情况下,所有非静态符号都可用。

    我的理解是 GNU 工具链可以选择性地将可见性限制为明确声明的符号。使用 GNU ld 如何实现这一点?