静态库和共享库有什么区别?
我使用Eclipse,有几种项目类型,包括静态库和共享库?一个人比另一个人有优势吗?
我升级了Xcode版本,当使用外部静态库时,我收到以下消息:
ld:文件是通用的(3个切片)但不包含(n)armv7s切片:/ file/location for architecture armv7s clang:error:linker命令失败,退出代码为1(使用-v查看调用)
如果库的开发人员还没有更新他们的库,有没有办法绕过这个并添加对库的支持?
我知道.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 mirror 932 Sep 2 23:25 openvpn-plugin-down-root.la
-rwxr-xr-x 1 mirror mirror 18805 Sep 2 23:25 openvpn-plugin-down-root.so
Run Code Online (Sandbox Code Playgroud) linux memory-management shared-libraries ld static-libraries
我对DLL和LIB知之甚少,除了它们包含程序正常运行所需的重要代码 - 库.但是为什么编译器会生成它们呢?将所有代码包含在单个可执行文件中会不会更容易?DLL和LIB之间的区别是什么?
我有一个二进制文件 - Windows静态库(*.lib).
有没有一种简单的方法可以从该库中找出函数及其接口的名称?
类似于emfar和elfdump实用程序(在Linux系统上)?
你能指导我如何正确地将静态库链接到iPhone项目.我使用添加到app项目的静态库项目作为直接依赖(目标 - >一般 - >直接依赖)并且所有工作正常,但是类别.静态库中定义的类别在app中不起作用.
所以我的问题是如何将静态库与一些类别添加到其他项目中?
一般来说,在其他项目的应用程序项目代码中使用的最佳做法是什么?
我是xcode和objective-c的新手.我想问一个非常基本的问题.
我在项目设置中看到"将二进制文件链接到库"时,从工作区中的其他项目导入的框架和库存在差异.
第一个问题,为什么有框架?为什么有图书馆?我的图书馆不能成为一个框架吗?
然后,从.h文件中,如何从导入的静态库中调用类?
我想必须有一个前缀,但我找不到它."ProjName/Myclass.h"都没有工作.
请尽可能具体.
谢谢
我有一个现有的iOS应用程序,并希望添加一大块代码,我一直在开发另一个项目,以方便测试.新的块基本上处理将图像保存到各种共享服务等.因为共享代码需要大量的测试和未来的更新,我想知道将代码块合并到我现有的应用程序中的最佳方法是什么.
我不知道它应该是静态库,动态库还是框架,老实说,我不确定区别是什么,或者我应该如何去做它并在Xcode中设置它.
我所知道的是,我需要/想要为共享代码保留单独的测试和更新应用程序,并让主应用程序使用它.
如果你还不能说,我不是一个git wiz.我只是一个简单的单人开发人员.
任何帮助或方向将不胜感激.谢谢!
我有一个问题:如何使用gcc在linux中编译静态库,即我需要将我的源代码编译成名为out.a的文件.用命令简单编译就足够了gcc -o out.a out.c吗?我对gcc不是很熟悉,希望有人能帮帮我.
我觉得很奇怪-Wl,-Bstatic,以便告诉gcc我想要静态链接哪些库.毕竟我gcc直接告诉所有关于链接库的信息(-Ldir,-llibname).
是否可以直接告诉gcc驱动程序哪些库应该静态链接?
澄清:我知道如果某个库只存在于静态版本中,它将在没有它的情况下使用它-Wl,-Bstatic,但我想暗示gcc更喜欢静态库.我也知道直接指定库文件会链接它,但我更喜欢保持包含静态和动态库的语义相同.
static-libraries ×10
objective-c ×3
gcc ×2
ios ×2
xcode ×2
c ×1
c++ ×1
categories ×1
dll ×1
frameworks ×1
ios6 ×1
iphone ×1
ld ×1
libraries ×1
linker ×1
linux ×1
windows ×1
xcode4 ×1