标签: dynamic-library

在 Xcode 中构建和使用 DYLIB

我正在尝试在 Xcode 中构建一个 .dylib。当前 .dylib 构建,但是当我将 .dylib 拖入另一个项目并尝试 #import .dylib 中的一个标头 (Seeker.h) 时,我收到此错误:

*: 没有
那个文件或目录Seeker.h: 没有那个文件或目录

该项目可在此处作为 Xcode 项目使用。

我可以确认标题确实在构建后的 .dylib 旁边的路径中,但至于如何处理它,我不知道。我对 .dylib 文件的唯一体验是内置于 Mac OS X 中的框架,例如 libsqlite3.dylib,它运行良好。我能在 .dylib 文件上找到的所有教程都没有涵盖如何以合理的方式在 Xcode 中使用它们;所有这些都依赖于复杂的脚本或依赖于机器的配置,这对我们不起作用。

所以基本上我需要一个从头到尾的分步过程,成功构建 .dylib 并以不依赖于为不同用户更改构建设置的方式成功地将它包含在另一个 Xcode 项目中。换句话说,当我们将两个项目分发给我们的团队成员时,这种方式行之有效。

c++ xcode dylib dynamic-library

3
推荐指数
1
解决办法
8397
查看次数

Swift运行时库与Swift标准库

在本教程中,如何使用CocoaPods,我无法理解以下段落:

与Objective-C不同,iOS中不包含标准的Swift运行时库!这意味着您的框架必须包含必要的Swift运行时库.因此,用Swift编写的pod必须创建为动态框架.如果Apple允许使用Swift静态库,则会导致使用相同标准运行时依赖项的不同库中出现重复符号.

这是我的问题:

  1. 究竟什么是"标准Swift运行时库"?是斯威夫特标准库这样的一个标准快捷的运行时间库,将一个框架,我在写迅速被认为是迅速的运行时库?

  2. "Swift运行时库不包含在iOS中"究竟是什么意思?我想我无法推断出"iOS"所指的内容.

任何有关本段的其他见解,链接,资源或解释将不胜感激!

编辑:

在阅读运行时库wiki文章后,我不再对Q1感到困惑.以下段落为我澄清了这一点:

不应将运行时库的概念与应用程序员创建的或由第三方提供的普通程序库混淆,也不应与动态库混淆,这意味着在运行时链接的程序库.例如,C编程语言只需要一个最小的运行时库(通常称为crt0),但定义了一个必须由每个实现提供的大型标准库(称为C标准库).

但是我仍然对Q2感到困惑.

linker static-libraries dynamic-library cocoapods swift

3
推荐指数
1
解决办法
1027
查看次数

是否会使用共享库代替静态库影响内存使用?

我正在链接10个静态库.

当我使用动态库时,我的二进制文件大小正在减少.

据我所知,使用动态库不会减少内存使用量.

但我的大四学生告诉我,使用共享库也会减少内存使用量?(当多个进程针对相同的可执行代码运行时.)

这个说法是对的吗?

他告诉我,因为库中没有复制的函数副本,所以内存使用量会减少.当您创建该进程的n个实例时.

当这个过程开始时它就是10个孩子.那么使用动态库代替静态库会减少总内存使用量吗?

c++ fork dynamic-library

2
推荐指数
1
解决办法
2354
查看次数

我可以禁止某些功能崩溃程序吗?

我希望制作交互式代码学习系统,它允许用户(通常是年轻程序员)用c ++语言编写一个函数的内容,将其发送到服务器,然后将其编译成动态库并从主程序调用.

程序期望函数根据给定的参数返回正确的答案.

当然,会有一些孩子,会导致分段错误等错误.(服务器是Linux驱动的).

那么,我可以创建退出函数的信号处理程序吗?

我想要完成的事情:

for (int i = 0; i < PLAYER_NUM; i++) {
    snprintf(buf, sizeof(buf), "players/%s.so", player[i]);
    handle = dlopen(buf, RTLD_LAZY);
    add[i] = (int (*)(int, int))dlsym(handle, "sum");
} // that was simply loading of functions from libraries.

for (int x = 0; x < 10; x++)
    for (int i = 0; i < PLAYER_NUM; i++) {
        if(failed[i]) continue;
        ret = add[i](x, 5);

    if(sigfault_received() || res != (x + 5)) {
        failed[i] = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

c c++ sandbox segmentation-fault dynamic-library

2
推荐指数
1
解决办法
149
查看次数

如何将LKM(可加载内核模块)链接到静态或动态库?

搜索后,我找不到任何LKM使用静态或动态库的示例.

我想创建静态和动态库(可能使用标准C库或任何其他库),然后开发一个使用我自己的静态和动态库的LKM.

如何将LKM(可加载内核模块)链接到静态或动态库?

c static-libraries linux-kernel dynamic-library

2
推荐指数
1
解决办法
1379
查看次数

如何手动将库添加到Visual Studio 2017项目?

对于这个肯定会被问到并回答过的非常基本的问题,我也深表歉意。我搜索了一个答案,但是找不到任何有用的东西。我正在使用VS 2017社区的最新更新,并且试图将我以前称为“函数库”的内容手动添加到位于“解决方案”下的项目中。

该项目只是一个C ++或C#控制台应用程序。我所拥有的是.h(头)文件,.lib(静态库)文件和.dll(动态库)文件。我打算对该库进行“函数调用”。我知道我需要将dll保存在可执行文件所在的调试文件夹中,但是我不确定如何在VS 2017中“添加依赖项”。我知道如何管理和安装NuGet软件包,但是这些文件不是不是一个方便的NuGet软件包。

我希望能以正确的方式(VS 2017)获得建议。

c# c++ static-libraries visual-studio dynamic-library

2
推荐指数
1
解决办法
6016
查看次数

动态库问题:dlsym() 找不到 smbol

我一直在关注 Apple 的动态库编程主题 dlopen()文档,以使用/创建和使用运行时加载的库dlsym()

我似乎无法在运行 macOS Mojave 的 2012 年中 MacBook Air 上找到所需的符号。

库源代码

// adder.h

int add(int x);
Run Code Online (Sandbox Code Playgroud)

// adder.cpp
#include "adder.h"

int add(int x) {
    return (x + 1);
}
Run Code Online (Sandbox Code Playgroud)

编译为clang -dynamiclib adder.cpp -o libAdd.A.dylib

主要来源

// main.cpp

#include <stdio.h>
#include <dlfcn.h>
#include <stdlib.h>

#include "adder.h"

int main() {

    void* adder_handle = dlopen("libAdd.A.dylib", RTLD_LOCAL|RTLD_LAZY);

    if (!adder_handle) {
        printf("[%s] Unable to load library: %s\n\n", __FILE__, dlerror());
        exit(EXIT_FAILURE);
    }

    while(true) {

        void* voidptr = …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-library

2
推荐指数
1
解决办法
3017
查看次数

什么是VBAProject关键字?

在“ 对象浏览器”窗口中,有一个正在使用的库的列表。

默认情况下,它带有:

  • Excel(Microsoft Excel 版本对象库)
  • Office(Microsoft Office 版本对象库)
  • stdole(OLE自动化)
  • VBA(用于应用程序的Visual Basic)
  • VBA项目

也可以通过使用VBIDE库(应用程序可扩展性版本的 Microsoft Visual Basic )(除了VBAProject)循环VBProject的引用来找到它们。

VBAProject是一个库,一个特殊关键字还是其他?找不到任何文档。

我想它也是VBA库的一部分,但是它似乎没有出现在引用中。

Dim ref As VBIDE.Reference

For Each ref In Application.VBE.VBProjects(1).References
  MsgBox ref.Name & " - " & ref.Description
Next
Run Code Online (Sandbox Code Playgroud)

VBAProject具有工作簿和工作表的代号。

我也无法手动删除也无法使用 Excel和VBA库编写代码来测试VBAProject是否会消失(Office和stdole是可移动的)。

excel vba keyword vbe dynamic-library

2
推荐指数
1
解决办法
56
查看次数

iOS什么时候使用动态链接库?在iOS中使用动态库有什么好处?

我对Window 或 Linux 中的动态链接库和 iOS 中的动态链接库的优势之间的差异感到很奇怪。

\n

下面的\xe2\xac\x87\xef\xb8\x8f这几句就是为了证明我为什么感觉怪怪的。

\n

我了解到库可以分为静态库动态库

\n

使用动态库的优点是允许其他应用程序使用相同的动态库(在Window中,.dll文件),这样每个应用程序的内存使用量都可以减少,并且可以更容易地重新分发动态库而不是重新分发应用程序。\n实际上我在使用某些应用程序时可能会遇到“没有XXX.dll文件”的情况

\n

在Xcode中,当创建新项目时,我们可以在.\n中选择框架静态库framework & library。\n创建项目后,我们可以选择如何成为Mach-O Type,例如“可执行文件,动态库,静态库”等。

\n

所以,我认为如果我选择带有动态库的Mach-O类型,则该项目将使用动态链接库以链接方式编译。

\n

\xe2\xac\x87\xef\xb8\x8f 我真的很想知道。

\n
    \n
  1. 但就像在 Window 中一样,iOS 用户可以在 iPhone 中下载.so 文件以便应用程序正常工作或更新动态库吗?
  2. \n
  3. iPhone 中启动的其他应用程序可以使用相同的动态库吗?
  4. \n
\n

因为我无法体验到这一点。

\n
    \n
  1. 如果它(1,2)不能,为什么要使用动态库,即使我们无法像在 Window 或 Linux 中那样获得使用动态库的实际优势?
  2. \n
\n

xcode dynamic-linking dynamic-library ios

2
推荐指数
1
解决办法
2225
查看次数

C++ 标准对动态库有何规定?

C++ 标准对动态库有何规定?我听说它完全忽略了它们(出于某种原因) - 如果这是真的,为什么会这样?

c++ dynamic-linking dynamic-library

2
推荐指数
1
解决办法
166
查看次数