linux 隐式调用 自己写的动态库
来源:互联网 发布:数控车床g90编程实例 编辑:程序博客网 时间:2024/05/18 00:52
~/test
|
|
|------main.c
|------lib
| |
| |------StringLen.h
| |------Strlen.c
| |------Strnlen.c
----------------StringLen.h:
#ifndef _STRINGLEN_H__
#define _STRINGLEN_H__
int Strlen(char *pStr);
int StrNlen(char *pStr, unsigned long ulMaxLen);
#endif
-------------------------------------------------
---------------Strlen.c:
#include<stdio.h>
#include<assert.h>
#include "StringLen.h"
int Strlen(char *pStr)
{
unsigned long ulLength;
assert(NULL != pStr);
ulLength = 0;
while(*pStr++)
{
ulLength++;
}
return ulLength;
}
-------------------------------------------------
---------------Strnlen.c:
#include<stdio.h>
#include<assert.h>
#include "StringLen.h"
int StrNlen(char *pStr, unsigned long ulMaxLen)
{
unsigned long ulLength;
assert(NULL != pStr);
if(ulMaxLen <= 0)
{
printf("Wrong Max Length!/n");
return -1;
}
ulLength = 0;
while(*pStr++ && ulLength < ulMaxLen)
{
ulLength++;
}
return ulLength;
}
-------------------------------------------------
生成动态库:
gcc -fpic -shared -o libStrlen.so Strlen.c
gcc -fpic -shared -o libStrnlen.so Strnlen.c
(生成动态库后,可以将Strlen.c Strnlen.c删除掉)
-----------------------main.c:
#include<stdio.h>
#include "StringLen.h"//静态库对应函数的头文件
int main(int argc, char* argv[])
{
char str[] = {"hello world"};
unsigned long ulLength = 0;
printf("The string is : %s/n", str);
ulLength = Strlen(str);
printf("The string length is:%lu (use Strlen)/n",ulLength);
ulLength = StrNlen(str, 10);
printf("The string length is:%lu (use StrNlen)/n", ulLength);
return 0;
}
-------------------------------------------------------
//编译main.c
gcc -Wall -I....../test/lib -o test1 main.c ....../lib/libStrlen.so (在指定路径时,相对路径和绝对路径都可以)
gcc -Wall -I....../test/lib -o test2 main.c ....../lib/libStrnlen.so (在指定路径时,相对路径和绝对路径都可以)
- linux 隐式调用 自己写的动态库
- linux 隐式调用 自己写的动态库
- linux 显式调用 自己写的动态库
- linux 显式调用 自己写的动态库
- C调用自己写的动态库
- 自己写一个linux的系统调用
- 写自己的函数直接调用Linux system call
- C++调用C#写的动态库
- 自己写的调用飞鸽传书
- 在Linux/Unix下把自己写的函数做成静态、动态库文件
- Linux动态库的显式调用
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- linux动态库的调用
- 简单Demo:动态调用自己编写的动态链接库
- 如何让自己的动态链接库文件能够在linux下被调用
- oracle lockmode
- Mysql 分页技术总结
- asp.net ajax学习笔记
- Super Scaler-- From Wiki
- Mplayer另类在线播放影音文件技巧
- linux 隐式调用 自己写的动态库
- 烦人的迅雷软件助手关联文件
- Java性能优化
- srtuts2第三次课
- 猫叫问题一
- wpf datagrid 详细介绍
- 垃圾收集
- Linux 安装 memcached 备忘
- 100%解决安装软件时出现“更新错误”或“无法安装”的问题