修复格式
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
- 线性表
|
- 线性表
|
||||||
|
|
||||||
- 顺序存储 --> arr
|
- 顺序存储 --> `arr`
|
||||||
|
|
||||||
- 链式存储 --> 指针 (有头,无头)
|
- 链式存储 --> 指针 (有头,无头)
|
||||||
|
|
||||||
@@ -32,16 +32,22 @@
|
|||||||
- 栈
|
- 栈
|
||||||
|
|
||||||
- 队列
|
- 队列
|
||||||
|
|
||||||
练习:
|
练习:
|
||||||
1. 表达式计算
|
|
||||||
2. 球钟算法
|
1. 表达式计算
|
||||||
三个栈,1h,5min,1min。27个球,过了多久队列里又是1到27的顺序。
|
|
||||||
|
2. 球钟算法
|
||||||
|
三个栈,1h,5min,1min。27个球,过了多久队列里又是1到27的顺序。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- 树状(1:N)
|
- 树状(1:N)
|
||||||
|
|
||||||
**递归**。**递归**转**非递归**。
|
**递归**。**递归**转**非递归**。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- 图(N:M)
|
- 图(N:M)
|
||||||
|
|
||||||
|
|
||||||
@@ -52,32 +58,28 @@
|
|||||||
- 私家车,可以不在标准的位置下。
|
- 私家车,可以不在标准的位置下。
|
||||||
- 编译时引入,代码膨胀但是不影响运行时间。
|
- 编译时引入,代码膨胀但是不影响运行时间。
|
||||||
- 动态库(共享库):
|
- 动态库(共享库):
|
||||||
- 只能在指定的路径。
|
- 公交车,只能在指定的路径。
|
||||||
- 运行时引入,占用运行时间。
|
- 运行时引入,占用运行时间。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 静态库
|
### 静态库
|
||||||
|
|
||||||
`libxx.a`
|
1. `libxx.a`
|
||||||
xx 指代库名
|
xx 指代库名
|
||||||
|
2. `ar -cr libxx.a yyy.o`
|
||||||
`ar -cr libxx.a yyy.o`
|
3. 发布到
|
||||||
|
`/usr/local/include`
|
||||||
|
`/usr/local/lib`
|
||||||
|
4. `gcc -L/usr/local/lib -o main main.o -lxx`
|
||||||
|
如果路径都是这个默认的,可省略。
|
||||||
|
`-l`参数必须在最后,有依赖
|
||||||
|
5. `ldd -print shared libirary dependencies`
|
||||||
|
打印所用到的动态库的内容
|
||||||
|
|
||||||
|
|
||||||
发布到
|
|
||||||
`/usr/local/include`
|
|
||||||
`/usr/local/lib`
|
|
||||||
|
|
||||||
`gcc -L/usr/local/lib -o main main.o -lxx`
|
#### 以链式双向链表的`lib2`为例。
|
||||||
如果路径都是这个默认的,可省略。
|
|
||||||
`-l`参数必须在最后,有依赖
|
|
||||||
|
|
||||||
`ldd -print shared libirary dependencies`
|
|
||||||
打印所用到的动态库的内容
|
|
||||||
|
|
||||||
|
|
||||||
以链式双向链表的`lib2`为例。
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/list/linklist/double/lib2]$ ldd ./main
|
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/list/linklist/double/lib2]$ ldd ./main
|
||||||
@@ -118,30 +120,31 @@ xx 指代库名
|
|||||||
这时`main.c`路径下都不需要`llist.c`和`llist.h`了,`#include`时也从`"llist.h"`变为`<llist.h>`。
|
这时`main.c`路径下都不需要`llist.c`和`llist.h`了,`#include`时也从`"llist.h"`变为`<llist.h>`。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 动态库
|
### 动态库
|
||||||
|
|
||||||
`libxx.so`
|
1. `libxx.so`
|
||||||
xx为库名
|
xx为库名
|
||||||
|
2. `gcc -shared -fpic -o libxx.so yyy.c`
|
||||||
|
3. 发布到
|
||||||
|
`/usr/local/include`
|
||||||
|
`/usr/local/lib`
|
||||||
|
4. 在`/etc/ld.so.conf`中添加路径
|
||||||
|
5. `/sbin/ldconfig` 重读`/etc/ld.so.conf``
|
||||||
|
6. ``gcc -I/usr/local/include -L/usr/local/lib -o ... -lxx`
|
||||||
|
如果路径都是这个默认的,可省略。
|
||||||
|
7. 非root用户发布,可以自己定义一个位置,例如`~/lib`
|
||||||
|
|
||||||
`gcc -shared -fpic -o libxx.so yyy.c`
|
|
||||||
|
|
||||||
发布到
|
|
||||||
`/usr/local/include`
|
|
||||||
`/usr/local/lib`
|
|
||||||
|
|
||||||
在`/etc/ld.so.conf`中添加路径
|
|
||||||
`/sbin/ldconfig` 重读`/etc/ld.so.conf`
|
|
||||||
|
|
||||||
`gcc -I/usr/local/include -L/usr/local/lib -o ... -lxx`
|
|
||||||
如果路径都是这个默认的,可省略。
|
|
||||||
|
|
||||||
非root用户发布,可以自己定义一个位置,例如`~/lib`
|
|
||||||
```bash
|
```bash
|
||||||
cp xx.co ~/lib
|
cp xx.co ~/lib
|
||||||
export LD_LIBRARY_PATH= ~/lib
|
export LD_LIBRARY_PATH= ~/lib
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 还是以`lib2`为例。
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/list/linklist/double/lib2]$ ls
|
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/list/linklist/double/lib2]$ ls
|
||||||
llist.c llist.h main main.c Makefile
|
llist.c llist.h main main.c Makefile
|
||||||
@@ -176,9 +179,14 @@ export LD_LIBRARY_PATH= ~/lib
|
|||||||
/lib64/ld-linux-x86-64.so.2 (0x00007fda7403a000)
|
/lib64/ld-linux-x86-64.so.2 (0x00007fda7403a000)
|
||||||
```
|
```
|
||||||
|
|
||||||
当动态库和静态库重名,会优先链接**静态库**。
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> 当动态库和静态库重名,会优先链接**静态库**。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 以链式存储栈为例,`libstack`依赖`libllist`。
|
||||||
|
|
||||||
以链式存储栈为例,`libstack`依赖`libllist`。
|
|
||||||
```bash
|
```bash
|
||||||
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/stack/list]$ ls
|
*[main][~/workspace/Linux-C-Notes/Chapter11/ds/line/stack/list]$ ls
|
||||||
llist.c main Makefile stack.o
|
llist.c main Makefile stack.o
|
||||||
|
|||||||
Reference in New Issue
Block a user