Tag: 静态库

g ++连接器:如果静态库存在,强制静态链接?

我有一个链接到很多图书馆的程序。 g++默认情况下,即使存在相应的存档,也希望链接到共享库。 如果存在静态存档,如何将此首选项更改为首选dynamic库上的静态存档? 请注意,我使用了-static选项,但它试图find所有库的静态存档,这不是我想要的。

试图包含一个库,但不断收到'未定义的引用'的消息

我正在尝试使用libtommath库。 我在Ubuntu linux上为我的项目使用了NetBeans IDE。 我已经下载并构build了库,我已经做了一个“make install”,将生成的.a文件放入/ usr / lib /和.h文件到/ usr / include 这似乎是find适当的文件(因为我不再得到这些错误,我安装到/ usr目录之前)。 但是,当我创build一个简单的主调用mp_init(在库中),当我尝试使我的项目时,我得到以下错误: mkdir -p build/Debug/GNU-Linux-x86 rm -f build/Debug/GNU-Linux-x86/main.od gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.od -o build/Debug/GNU-Linux-x86/main.o main.c mkdir -p dist/Debug/GNU-Linux-x86 gcc -o dist/Debug/GNU-Linux-x86/cproj1 build/Debug/GNU-Linux-x86/main.o build/Debug/GNU-Linux-x86/main.o: In function 'main': /home/[[myusername]]/NetBeansProjects/CProj1/main.c:18: undefined reference to `mp_init' collect2: ld returned 1 exit status make[2]: […]

XCode:复制标题:公共还是私有还是项目?

我正在构build一个Cocoa Touch静态库。 我应该如何决定是否将头文件复制为公共,私人或项目?

什么是静态库的.lib文件,静态链接的dynamic库和dynamic链接的dynamic库?

什么是静态库的.lib文件,静态链接的dynamic库和dynamic链接的dynamic库? 如何在dynamic链接的dynamic库中不需要.lib文件,而且在静态链接中,.lib文件不过是包含所有方法的.obj文件。 那是对的吗?

静态链接libstdc ++:任何陷阱?

我需要在Ubuntu 12.10上使用GCC 4.7的libstdc ++部署一个C ++应用程序到运行Ubuntu 10.04的系统,该系统带有一个相当老版本的libstdc ++。 目前,我正在编译-static-libstdc++ -static-libgcc ,正如本博文所build议的: 静态链接libstdc ++ 。 作者警告,静态编译libstdc ++时不要使用任何dynamic加载的C ++代码,这是我还没有检查过的东西。 不过,现在一切似乎都进展顺利:我可以使用Ubuntu 10.04上的C ++ 11function,这正是我以前的做法。 我注意到这篇文章是从2005年开始的,也许从那以后有了很大变化。 它的build议还是最新的吗? 有什么潜在的问题我应该知道?

如何检查是否为64位构build了一个静态库?

我刚刚为iOS构build了一个静态库,并将Architectures的构build设置设置为$(ARCHS_STANDARD_INCLUDING_64_BIT) 。 我想确保.a库正确地包含这个架构,但是当我运行lipo -info时,我看到: fat文件中的体系结构:library.a是:armv7 armv7s(cputype(16777228)cpusubtype(0)) 这是否意味着不包括arm64? 如果lipo命令不能告诉我,有没有另一种方法可以告诉? 我正在运行安装了最新命令行工具的Xcode 5。

Xcode 4无法从静态库依赖关系find公共头文件

备用标题来帮助search Xcode无法find标题 在Xcode中缺less.h 找不到Xcode .h文件 词法或预处理程序问题文件未find 我正在从Xcode 3来的iOS应用程序项目。我现在已经转移到Xcode 4我的项目build立了一些静态库。 那些静态库也声明公共头,这些头被应用程序代码使用。 在Xcode 3.x中,头部被复制(作为构build阶段)到public headers directory ,然后在应用程序项目中, public headers directory被添加到headers search list 。 在Xcode 4下,构build目录被移动到~/Library/Developer/Xcode/DerivedData/my-project 。 问题是如何在标题search设置中引用这个新位置? 看起来: public headers directory是相对于DerivedData目录的,但是 headers search目录是相对于别的东西(可能是项目位置) 我应该如何在Xcode 4中为iOS开发设置一个静态库目标,以确保在试图编译为依赖时,头文件可供使用静态库的客户端使用?

iOS静态与dynamic框架说明

我不得不承认,随着iOS 8的发布,我对iOS中的dynamic和静态框架感到困惑。 我正在寻找一种方式来分发我创build的库,我需要支持iOS 7及以上版本。 (注:这将是一个专有的框架,我不能使用cocoa豆荚,我也不能分发源)。 这是我已经知道的; iOS 8为iOS引入了“embedded式框架”,但据我所知,它们不适用于iOS 7,仅适用于iOS 8及以上版本。 我可以select将我的库作为静态库(.a文件)分发,也可以分发头文件。 我知道这是处理这种情况的一种常见方式,但是我希望find一些比这更简单的方法(如果可能的话,也可以把一些资源捆绑在一起)。 我还发现,iOS 7不支持dynamic.framework库(只有静态),因为它不支持dynamic链接。 但是iOS 8,以及静态链接。 这是关于这个信息的问题。 我看到我可以通过将Mach-Otypes改为“静态库”来创build一个.framework目标,并将其设置为静态。这足以支持iOS 7而不会出现任何问题,并且还可以将我的库作为.framework bundle?如果是这样的话,为什么iOS 8中的“embedded式框架”这么重要,因为互联网上的许多资源都是这样build议的?我错过了什么? 是否有必要像我做任何其他应用程序一样对.framework进行编码签名? 如果我需要在我的.framework文件中包含其他资源(如核心数据或图像),该怎么办? 我需要为此创build一个单独的.bundle文件吗? 我已经search了互联网和苹果公司的文档以find答案,但是我发现的信息并没有给我一个直接的答案。 比你提前。

图书馆? 静态的? dynamic? 还是框架? 项目在另一个项目

我有一个现有的iOS应用程序,并希望添加一大堆的代码,我一直在开发作为另一个项目,只是为了便于testing。 新的块基本上处理保存到各种共享服务等图像。因为共享代码需要大量的testing和未来的更新,我想知道什么是最好的方式将该代码块合并到我的现有应用程序。 我不知道它应该是一个静态库,dynamic库还是一个框架,老实说,我不确定它们有什么区别,或者我应该怎样去做,并在Xcode中设置。 我所知道的是,我需要/想要为共享代码保留一个单独的testing和更新应用程序,并让主应用程序使用它。 如果你不能说,我不是一个混帐。 我只是一个简单的人开发者。 任何帮助或方向将不胜感激。 谢谢!

.so,.la和.a库文件有什么区别?

我知道一个.so文件是一种dynamic库(大量的线程可以共享这样的库,所以不需要在内存中有多个拷贝)。 但.a和.la什么.la ? 这些都是静态库吗? 如果dynamic库比静态库有更大的优势,为什么仍然有很多静态库? 我也想知道加载库的基本机制(这两种types)以及在某个地方使用某个lib中的一段代码的方式。 我应该学习哪一部分内核? 我应该知道什么相关的Linux命令/实用程序才能知道进程是如何运行的? (我现在只知道ld命令) 什么时候应该尝试将代码构build到.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 […]