把lib打包到so中

首先 --whole-archive 和 --no-whole-archive 是ld专有的命令行参数,gcc 并不认识,要通gcc传递到 ld,需要在他们前面加-Wl,字串。

--whole-archive 可以把 在其后面出现的静态库包含的函数和变量输出到动态库,--no-whole-archive 则关掉这个特性。

比如你要把 liba.a  libb.a libc.a 输出到 libabc.dll(或libabc.so)时应该这么写:

libabc.dll:liba.c libb.a libc.a

gcc  -shared -o [email protected] -L. -Wl,--whole-archive -la -lb -lc -Wl,--no-whole-archive

在--whole-archive作用下的库里不能有函数同名。

时间: 2024-10-29 19:06:27

把lib打包到so中的相关文章

maven如何在web工程中将本地lib文件打包到war中

在某些项目中可能会出现需要引用第三方商业化SDK的场景,此类商业SDK可能并不会纳入maven中心仓库,所以在编译打包过程中需要引用本地lib包. 1.引用本地jar包编译 <dependency> <groupId>org.XX(自定义)</groupId> <artifactId>XX(自定义)</artifactId> <version>1.0</version> <scope>system</sc

【转】如何把ndk编译出来的可执行文件伪装成so打包到apk中

原文网址:http://jeyechao.iteye.com/blog/2164286 ndk编译出来的共享库,eclipse会自动打包到apk中,而编译出来的可执行文件则不会. 要想可执行文件自动被打包到apk中,可以把文件名改成libxxx.so的形式,伪装成so,这样就会被打包进apk. 但是每次编译之后都改一下名字,太麻烦! 写个脚本吧,又有arm, armv7, x86的麻烦事! 想试着改LOCAL_MODULE_FILENAME来试试,NDK又不允许. 于是稍微看了下NDK的编译脚本

把dll打包到程序中并在执行时释放

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源) 参考文档: http://blog.sina.com.cn/s/blog_5f432e6a0100uaet.html 编写MFC程序的时候,使用dependency查看依赖时,会看到有依赖MFC的库,通常都包含如下这两个: MSCVCR100/90/80/70.dll库是一个很独立的库,它只依赖库Kenel32/kenel64 MFC100/90/80/70.dll也相对独立,依赖MS

将资源打包到程序中

使用vs开发qt程序有时候不希望程序使用到的图片资源让用户看到,这时可以讲资源打包到程序中. 创建qrc资源文件,里面写入你使用到的图片资源路径,下面的代码中img是文件夹 <RCC> <qresource prefix="/" > <file>img/ball.png</file> <file>img/chinapool.jpg</file> <file>img/Globe.ico</file&

C#将dll打包到程序中

原文:C#将dll打包到程序中 最近比较懒,加上内容也不多就懒得排版了,字放大了,看起来应该方便一点 直接进入主题 先来看一个栗子,假设现在有一个第三方dll namespace TestLibrary1 { public class Test { public void Point() { Console.WriteLine("aaabbbccc"); } } } TestLibrary1.dll 在项目中引用,然后调用其中的方法Test,将输出aaabbbccc using Sys

C# 将dll打包到程序中

本文告诉大家如何把 dll 打包到程序中.很多时候的 软件 在运行的时候需要包括很多 dll 或其他的文件,这样的软件在给其他小伙伴,就需要做一个压缩包,或者用安装软件.这样感觉不太好,所以本文告诉大家一个方法,把所有的 dll 放在一个文件,于是把自己的软件给小伙伴就只需要给他一个程序 ILMerge 首先下载ILMerge 然后安装,感觉安装很简单 假如有 1.exe 和 1.dll 准备把 1.dll 合并到 2.exe 那么可以使用下面代码 ilmerge /target:exe /ou

builder如何打包php网页为app,index.php无法被打包到app中

index.php无法被打包到app中,但是以浏览器的形式访问可以直接指向网页首地址 打包后app页面如果出现广告:1.可能是引入外部远程js时候被运营商劫持的:2.如果没有引用远程js或者所有的html都是从本地加载,则不会出现这样的情况,这种广告一般是运营商往你请求的页面或js文件中注入js导致的.所以HTML和js本地化基本就能解决了,请求都用https解决.3.js注入漏洞,一般类似那些加密的js部分好好查查,如下开头的js代码: eval(function(p,a,c,k,e,r){e

Java如何将图片打包到jar中

Eclipse使用导出Jar包后打开加载不了图像 ?????? 出现这种问题的原因大多是因为路径的问题,往往是在项目中运行正常,但是一旦打包成Jar后就不能正常显示了,下面总结一下解决此类问题的方法: 一.通过使用外部资源文件的方式解决 把项目打包生成Jar后,再新建一文件夹,把项目中所有使用的图片文件和生成Jar文件放在该目录下,只要代码对图片文件的引用路径正确,如:ImageIconimage=newImageIcon(SwingResourceManager.getImage("icons

iOS 把数据库文件打包到mainbundle中,查找不到路径的解决办法;以及在删除bundle中文件的可行性

在开发中有时我们需要把数据库文件打包到我们的项目中,一般我们都是在外部用工具生成数据库文件,然后拉入项目中,但是我们在程序中查找改文件时,返回的路径总是nil 解决办法: 原因我们拉入其他资源文件(比如:图片.代码文件等)Xcode都会自动添加到target 的 "Build Phases" 下 "Copy Bundle Resources目录下,但是我们拉过来的数据库文件这里是找不到的,可能是Xcode无法识别这类文件(当我们拉去过来时),所以我们要做的就是把刚才添加的db