- 浏览: 1488035 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
静态库及动态库的建立 UNIX系统及各种软件包为开发人员提供了大量的库文件。但一般情况下这些库文件还不能足以满足用户的所有需求。开发人员大多会根据他们自己的开发、研究要求编写出许多函数。对于这些函数,如果都用在命令行中指定源文件的方法同调用它们的程序链接起来,虽然也是可以的,但也有一些缺点:..... 下面来看看如何生成静态库。 我们知道静态库也称档案库,在此档案文件中实际上是收集了一系列的目标文件。这 些目标文件就是由cc(gcc)函数的源代码编译生成的。因此,静态库的生成方法实际上 可以分成两步: 1.将各函数代码所在的源文件编译成目录文件。例如,对于myfunc.c,可以用如下命令 将其编译成目标文件: gcc -c myfunc.c 当然在有多个源文件时,只需在gcc 命令行中将其分别列上就可以了。 经此一步我休养将能够得到各源文件的目标文件。对上例,将得到myfunc.o 2.将各目标文件收集起来放到一个静态库文件中。这主要借助于ar命令完成,如: ar r ~/lib/libtest.a myfunc.o 建立动态链接库、并不需要用到其他的工具,借助于gcc命令即可完成。此时需在命令 行中加上-K PIC和-G这两个选项,如下我们可以建立libtest的动态版本: gcc -K PIC -G -o $HOME/lib/libtest.so myfunc.c -- 本来格式很好看的,但因为要贴到这里所以 扭曲了不少,见谅见谅。这里给的是linux下的例子, 但是solaris下的也差不多. ldd filename就可以看到程序用到哪些库。 ld -o OUTPUT /lib/crt0.o hello.o -lc ld将输出最终结果文件 OUTPUT , 用到/lib/crt0.o hello.o以及libc.a libc.a来自标准库搜索路径,请参看-l选项的讨论 ld的选项顺序任意,可以重复,后面的将覆盖前面的。 gcc -c -fPIC linuxlib.c -O3 -o linuxlib.o gcc -shared -Wl,-soname,liblinuxlib.so.1 \ -O3 -o liblinuxlib.so.1.0 linuxlib.o ( ld -m elf_i386 -shared -o liblinuxlib.so.1.0 \ -soname liblinuxlib.so.1 linuxlib.o 这个语句产生的文件更小,不知道二者有何区别 -o liblinuxlib.so.1.0 这个文件名任意,关键是后面 两个符号连接要正确 当然推荐使用有意义的带版本信息的名字,包括 -soname liblinuxlib.so.1 ) ln -sf liblinuxlib.so.1.0 liblinuxlib.so.1 ( 运行时,dynamic linker根据 -soname \ liblinuxlib.so.1 去寻找liblinuxlib.so.1 ) ln -sf liblinuxlib.so.1 liblinuxlib.so ( 编译的最后一个步骤,ld命令根据 -llinuxlib 选项去寻找liblinuxlib.so ) export LD_LIBRARY_PATH=. ( 编译时、运行时都需要这个变量的存在 编译时如果不存在这个变量,编译依旧通过,但 用ldd查看会发现没有动态连接信息 运行时如果不存在这个变量,将报告无法找到动态连接库 这个变量如果不用相对路径".",换了运行环境就比较麻烦 export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH ) gcc -L. -lbsd -llinuxlib -O3 -o linuxkiller linuxkiller.c ( -L. 指出除标准库搜索路径之外的库搜索路径,如果不指 定,将找不到liblinuxlib.so 这个选项并不能代替 LD_LIBRARY_PATH 变量,否则虽然编译通过, 但用ldd linuxkiller的时候会发现没有动态连接信息 ) 可以把自己的动态连接库放到/usr/lib或者/lib下去,或者 修改/etc/ld.so.conf 然后利用/sbin/ldconfig。具体请man ldconfig -- 发信人: hellguard (小四), 信区: Unix 标 题: Re: help :static library----what's wrong--Thanks. 发信站: BBS 水木清华站 (Thu Aug 16 14:22:39 2001) 【 在 hululu (呼噜噜~回家中) 的大作中提到: 】: I am building a static library. But I do not know what is : wrong. Below is a sample: : tt.c: : #include : int func(){ : printf("func test\n"); : return 0; : } : ii.c: : #include : extern int func(); : ................... ★ 生成静态链接库举例 1. vi demo.h void demo ( void ); vi demo.c #include #include "demo.h" void demo ( void ) { printf( "hello world\n" ); return; } 2. g -Wstrict-prototypes -Wall -Wunused -O3 -c demo.c -o demo.o file demo.o 3. ar -rsv libdemo.a demo.o a - demo.o file libdemo.a nm -s libdemo.a ar -tv libdemo.a 4. vi scz.c #include #include "demo.h" int main ( int argc, void * argv[] ) { demo(); return 0; } 5. g scz.c -L. -ldemo -Wstrict-prototypes -Wall -Wunused -O3 -o scz
发表评论
-
Linux内核源码包的安装及编译zz
2009-12-15 20:58 4266http://my.donews.com/ecco2005/2 ... -
Linux内核Makefile文件(二)
2009-12-15 19:34 2417=== 6 体系Makefile文 ... -
Linux内核Makefile文件(一)
2009-12-15 19:34 1834本文是/Documentation/kbuild/make ... -
Linux加载模块命令
2009-12-15 19:28 2678安装模块insmod *.ko卸载 ... -
linux内核模块编程
2009-12-15 19:25 3556主题: linux内核模块的程序结构--模块加载函数(必须), ... -
编译linux内核~
2009-12-05 22:04 1396小菜鸟第一次编译linux内核。截图太多 。。不方便上传 = ... -
grub2 基础教程
2009-12-05 18:01 2743grub2基础教程-修订版 ... -
Ubuntu9.10版本没有了menu.lst文件!
2009-12-05 18:00 3115囧~现在都在grub下面配置了。 不过麦斯之前的men ... -
关于信号量与线程互斥锁的区别与实现
2009-11-30 14:37 2390之前一直没有怎么 ... -
Linux信号量线程控制
2009-11-30 14:31 3654线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁, ... -
信号量和自旋锁
2009-11-29 21:56 1626内核同步措施 ... -
Linux信号量semaphore编程实例
2009-11-29 21:20 6539本例示范Linux信号量的基本用法。该范例使用了两个线程分别对 ... -
Linux获取当前时间
2009-11-29 21:16 3637Linux获取当前时间 ... -
pthread库学习(2): 线程的同步,使用信号量
2009-11-29 20:55 2453先看下面这段程序,主线程创建了三个线程,每个线程中均有一个打印 ... -
信号量的基本思想
2009-11-29 20:17 1455信号量是1965荷兰Dijkstra 为了解决并发进程问题 ... -
多进程通信方式一:管道(PIPE)
2009-11-27 18:29 9074进程通信(IPC)的几种方式及比较 撰文:黄显国08 ... -
进程的管道通信
2009-11-27 18:12 2981实验四 进程的管道通信 ... -
Linux下线程的挂起和恢复
2009-11-27 15:42 3701POSIX的Linux操作系统没有提供线程挂起和恢复的例程,在 ... -
LInux高级编程 - 线程(Threads)
2009-11-27 15:40 1855LInux高级编程 - 线程(Threads) ... -
Linux下c开发 之 线程通信
2009-11-27 15:39 19301.Linux“线程” 进程与 ...
相关推荐
2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多...
2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多...
2.2.8 生成和使用静态链接库 25 2.2.9 生成动态链接库 26 2.2.10 动态加载库 29 2.2.11 GCC常用选项 31 2.2.12 编译环境的搭建 33 2.3 Makefile文件简介 34 2.3.1 一个多文件的工程例子 34 2.3.2 多...
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
8生成和使用静态链接库.......................................... 25 2 . 2 . 9生成动态链接库.................................................26 2.2.10动态加载库............................................
ZThread的最新源文件及自己编译生成的静态库文件,动态库文件,可以直接用来进行C++的并发编程,也可以自己编译,Windows及Linux的编译方法见http://blog.csdn.net/lanbing510/article/details/8441258
支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。 使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...
10.7 微软动态链接库 10.8 OSF/1伪静态共享库 10.9 让共享库快一些 10.10 几种动态链接方法的比较 练习 项目 第11章 高级技术 11.1 C++的技术 11.2 增量链接和重新链接 11.3 链接时的垃圾收集 11.4 链接时优化 ...
� Android 的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金; Android 的 程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己...
- **链接器**:生成的机器码通常需要链接器(linker)进行链接,将多个目标文件合并为一个可执行文件,同时解决外部符号引用。 ### 应用场景与优势 汇编语言主要应用于以下几个方面: - **系统级编程**:操作...
支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。 使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...
07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 django模板之变量 04 django模板之过滤器 05 django模板之控制语句if和...
只需用英特尔编译器重新生成或重新链接库,注重性能的应用程序就可以从最新的兼容 IA 的处理器获益。开发人员只需投入很少的时间和精力,就能够实现非凡的应用程序性能。 兼容性 英特尔软件开发工具保护您在现有...
没有依赖关系(NodeJS,Python解释器等) -Boilr是一个静态链接的二进制文件。 抓住适合您的体系结构的一个,通过使用模板,您都可以节省时间! 全部功能-Golang具有强大的模板构造,它们非常易于学习且功能强大。 ...
StaticLibrary: 显示的编译成静态链接库,与上面的 Library 效果一样。 SharedLibrary: 在 POSIX 系统上编译动态链接库,在 Windows 平台上编译 DLL。 这个简单的 SConstruct 的配置文件从一个侧面说明了使用 ...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...