易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX 下动态,静态链接库实战

对于动态链接库和静态链接库的概念以及链接方式不再累赘。直接开始上代码和进行编译。-__-||。
代码很简单,横竖就三个当家的。
库头文件corey.hpp:
#ifndef LIBRARY_H
#define LIBRARY_H
void add(int,int,int*);
#endif
库实现文件corey.cpp
#include "corey.hpp"
void add(int a,int b,int *c){
int total=a+b;
*c=total;
}
入口函数main.cpp:
#include "corey.hpp"
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int args,char *argc[]){
int a=1;
int b=2;
int *c;
add(a,b,c);
cout << "add result:";
cout << *c << endl << flush;
}
静态库:
先建立static文件夹,将三文件分别置于其中。
1)生成静态库
g++ -c corey.cpp
ar -rc libcorey.a corey.o
同时请注意命名。
2)编译main.o
gcc -I /home/corey/static -o main.o -c main.c
此时-I指定了corey.hpp文件的目录,默认会去/usr/include和本目录中查找,可将文件放置在这两个位置,则可不比指定I。
我们知道编译的时候,只需要指定头文件即可。
3) 链接main
gcc -o main -L/home/corey/static main.o -lcorey   (corey为省去了lib,a的库名)
并且参数-l必须在输入文件之后。
我们可以选择把libcorey.a文件放置在/usr/lib文件夹中,可以省去指定-L参数。
4)执行main
执行main程序,无需程序库的参与。
动态库:
建立文件夹so,将三文件放置其中。
1)编译动态库。
g++ -fpic -shared -o libcorey.so corey.cpp
2)编译main.o
gcc -I /home/corey/static -o main.o -c main.c
此时-I指定了corey.hpp文件的目录,默认会去/usr/include和本目录中查找,可将文件放置在这两个位置,则可不比指定I。
我们知道编译的时候,只需要指定头文件即可。
3)链接main
gcc -o main -L/home/corey/static main.o -lcorey   (corey为省去了lib,a的库名)
并且参数-l必须在输入文件之后。
我们可以选择把libcorey.a文件放置在/usr/lib文件夹中,可以省去指定-L参数。
4)执行main
提示没有加载库
./main: error while loading shared libraries: libcorey.so: cannot open shared object file: No such file or directory
5)echo /home/corey/so >> /etc/ld.so.conf
6)ldconfig
7)执行成功。


相关文档:

三款 Linux 下的免费桌面级杀毒软件(图)


由于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些 ......

Linux Socket学习笔记(2) Socket的介绍

Socket 就是套接字。
Socket 可以和本地目录绑定,也可以和一个IP地址绑定。
int socketpair(sa_family, socket_type, protocal,  int sz[2]);
sa_family: AF_LOCAL( 和 AF_UNIX一样) 表示本地的socket 连接
                 A ......

Linux帧缓冲设备驱动程序框架及图形界面GUI的移植

硬件平台
  S3C2410X是三星公司的基于ARM920T的S3C2410X芯片。S3C2410X集成了一个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)、SDRAM、触摸屏、USB、SPI、SD和MMC等控制器,4个具有PWM功能的计时器和1个内部时钟,8通道的10位ADC,117位通用I/O口和24位外部中断源,8通道10位AD控制器,处理器工作频率最高达到203MH ......

myeclipse在linux下不能输入中文

      今天用myeclipse,创建工程项目,然后准备敲代码,在写注释的时候,发现不能输入中文,刚开始觉得不能输入中文就算了吧,用英文写注释也可以的,但是这件事没有这么算了,我注释越写越多的时候,发现很多自己不会写的单词,需要一些时间才能想起来,这多么耽误时间啊!
      ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号