Questions tagged «static-libraries»

静态库是目标文件的存档。用作链接器输入时,链接器提取进行链接所需的目标文件。


8
文件是通用的(三个切片),但是对于iOS上的静态库,文件不包含ARMv7-s切片错误,无论如何都要绕过?
我升级了Xcode版本,并在使用外部静态库时收到以下消息: ld:文件是通用文件(3个切片),但不包含armv7s切片:体系结构armv7s clang的/ file / location:错误:链接器命令失败,退出代码为1(使用-v查看调用) 如果库的开发人员尚未更新其库,是否有任何方法可以绕过此过程并向库添加支持?

1
.so,.la和.a库文件有什么区别?
我知道.so文件是一种动态库(很多线程可以共享这样的库,因此在内存中不需要多个副本)。但是.a和之间有什么区别.la?这些都是静态库吗? 如果动态库比静态库具有很大的优势,那么为什么仍然有很多静态库? 我还想知道加载库(两种)的基本机制,以及在某处使用lib时如何调用一段代码。我应该学习内核的哪一部分?我应该了解什么相关的Linux命令/实用程序才能知道进程如何运行?(我现在只知道ld命令) 什么时候应该尝试将代码内置到.so或中.a?哪一个更好? [mirror@home ins_openvpn]$ ls lib/openvpn/plugins/ -l total 96 -rw-r--r-- 1 mirror mirror 22892 Sep 2 23:25 openvpn-plugin-auth-pam.a -rwxr-xr-x 1 mirror mirror 931 Sep 2 23:25 openvpn-plugin-auth-pam.la -rwxr-xr-x 1 mirror mirror 23621 Sep 2 23:25 openvpn-plugin-auth-pam.so -rw-r--r-- 1 mirror mirror 17228 Sep 2 23:25 openvpn-plugin-down-root.a -rwxr-xr-x 1 mirror …

5
DLL和LIB文件-什么以及为什么?
我对DLL和LIB知之甚少,除了它们包含程序正常运行所需的重要代码-库。但是,为什么编译器会生成它们呢?只将所有代码包含在一个可执行文件中会不会更容易?DLL和LIB有什么区别?


6
静态库中的Objective-C类别
您能指导我如何正确地将静态库链接到iPhone项目吗?我使用添加到应用程序项目中的静态库项目作为直接依赖项(目标->常规->直接依赖项),所有工作正常,但类别有效。静态库中定义的类别在应用中不起作用。 所以我的问题是如何将带有某些类别的静态库添加到其他项目中? 通常,在其他项目的应用程序项目代码中使用最佳实践是什么?

3
图书馆?静态的?动态?还是框架?在另一个项目中的项目
我有一个现有的iOS应用程序,想要添加大量我作为另一个项目开发的代码,只是为了便于测试。新的块基本上是将图像保存到各种共享服务等。由于该共享代码需要进行大量测试和将来的更新,我想知道将这种代码块合并到现有应用程序中的最佳方法是什么。 我不知道它应该是静态库,动态库还是框架,老实说,我不太确定有什么区别,或者我应该如何处理并在Xcode中进行设置。 我所知道的是,我需要/想要为共享代码保留一个单独的测试和更新应用程序,并让主应用程序使用它。

3
如何在Linux中编译静态库?
我有一个问题:如何在Linux中使用编译静态库gcc,即我需要将源代码编译成名为out.a的文件。仅使用命令编译就足够了gcc -o out.a out.c吗?我不太熟悉gcc,希望任何人都可以帮助我。
138 c  gcc  static-libraries 

2
xcode4中框架和静态库之间的区别以及如何调用它们
我对xcode和Objective-c还是很陌生。我想问一个非常基本的问题。 我看到在项目设置中“将二进制文件链接到库”时,从工作空间中其他项目导入的框架和库存在差异。 第一个问题,为什么要有一个框架?为什么有图书馆?我的图书馆不能成为框架吗? 然后,从.h文件中,如何从导入的静态库中调用类? 我想必须有一个前缀,但是找不到。也不“ ProjName / Myclass.h”正在工作。 请,请尽可能具体。 谢谢

2
直接告诉gcc静态链接库
使用它-Wl,-Bstatic来告诉gcc我要静态链接的库对我来说很奇怪。毕竟我告诉gcc直接有关与库(链接的所有其他信息-Ldir,-llibname)。 是否可以直接告诉gcc驱动程序应静态链接哪些库? 澄清:我知道,如果某个库仅存在于静态版本中,它将在不使用的情况下使用它-Wl,-Bstatic,但是我想暗示gcc更喜欢静态库。我也知道直接指定库文件将与它链接,但是我更喜欢保持包含静态库和动态库的语义相同。

5
iOS静态和动态框架说明
我必须承认,随着iOS 8的发布,我对iOS中的动态和静态框架有些困惑。 我正在寻找一种分发我创建的库的方法,并且我需要支持iOS 7及更高版本。(注意:这将是专有框架。我无法使用可可豆荚,也无法分发源代码)。这是我已经知道的: iOS 8引入了适用于iOS的“嵌入式框架”,但据我所知,它们不适用于iOS 7,仅适用于iOS 8及更高版本。 我可以选择将我的库分发为静态库(.a文件),也可以分发标头。我知道这是处理这种情况的常用方法,但是我想找到比这更简单的方法(如果可能的话,还要捆绑一些资源)。 我还发现iOS 7不支持动态.framework库(仅静态),因为它不支持动态链接。但是iOS 8以及静态链接都可以。 这是我对这些信息的疑问: 我看到我可以通过将Mach-O类型更改为“静态库”来创建一个.framework目标并将其设为静态。这足以支持iOS 7而不会出现任何问题,并且还可以将我的库作为.framework bundle?如果是,为什么Internet上的许多资源表明,iOS 8中的“嵌入式框架”这么重要呢? 是否需要像我对其他任何应用程序所做的那样对.framework进行代码签名? 如果我需要在.framework文件中包含其他资源(如核心数据或图像)怎么办?我需要为此制作一个单独的.bundle文件吗?

8
静态链接仅某些库
与GCC链接时,如何仅将某些特定的库静态链接到我的二进制文件? gcc ... -static ...试图静态链接所有链接的库,但是我还没有其中一些的静态版本(例如:libX11)。


3
如何告诉CMake链接源目录中的静态库?
我有一个带有Makefile的小项目,我正尝试将其转换为CMake,主要是为了获得CMake的经验。就本示例而言,项目包含一个源文件(C ++,尽管我认为该语言不是特别重要)和一个静态库文件,该文件是我从其他地方复制来的。出于争论的考虑,假设该库的源代码不可用;我只有.a文件和相应的标头。 我手工制作的Makefile包含以下构建规则: main: main.o libbingitup.a g++ -o main main.o libbingitup.a 效果很好。我如何告诉CMake重现此内容?当然,从字面上看,并不是确切的makefile,而是包含等效链接命令的东西。我尝试了一些明显但天真的方法,例如 add_executable(main main.cpp libbingitup.a) 要么 add_executable(main main.cpp) target_link_libraries(main libbingitup.a) 以及带有link_directories(.)或add_library(bingitup STATIC IMPORTED)等等的各种事物,但到目前为止,没有任何事物能够成功实现链接。我该怎么办? 版本详细信息:具有GCC 4.6.3的Linux(Kubuntu 12.04)上的CMake 2.8.7

17
Xcode 4无法从静态库依赖项中找到公共头文件
备用标题以帮助搜索 Xcode找不到标题 Xcode中缺少.h 找不到Xcode .h文件 找不到词汇或预处理程序问题文件 我正在研究一个来自Xcode 3的iOS应用程序项目。我现在已移至Xcode 4,我的项目构建了许多静态库。 这些静态库还声明了公共头,这些头由应用程序代码使用。在Xcode 3.x中,将标头复制(作为构建阶段)到public headers directory,然后在应用程序项目中将标头public headers directory添加到中headers search list。 在Xcode 4下,构建目录移至~/Library/Developer/Xcode/DerivedData/my-project。 问题是如何在标题搜索设置中引用此新位置?看起来: public headers directory是相对于DerivedData目录的,但是 headers search 目录相对于其他目录(可能是项目位置) 我应该如何在Xcode 4中为iOS开发设置静态库目标,以确保在尝试作为依赖项进行编译时,头文件可用于使用静态库的客户端?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.