作者:AlbertWen
添加时间:2015-11-15 15:19:44
修改时间:2025-07-30 02:38:13
分类:
13.C/C++/Rust/仓颉
编辑
-l参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?-lname,在连接时,装载名字为“libname.a”的函数库
作者:AlbertWen
添加时间:2017-10-27 19:23:26
修改时间:2025-09-09 03:31:12
分类:
13.C/C++/Rust/仓颉
编辑
不同的CPU有不同的字节序类型,这些字节序是指 整数 在内存中保存的顺序,这个叫做 主机序。
最常见的有两种:
1.Little endian:将低序字节存储在起始地址
作者:AlbertWen
添加时间:2015-12-12 18:54:02
修改时间:2025-09-14 00:44:31
分类:
13.C/C++/Rust/仓颉
编辑
g++(gcc)编译选项
- -shared :指定生成动态链接库。
- -static :指定生成静态链接库。
- -fPIC :表示编译为位置独立的代码,用于编译共享库。目标文件需要创建成位置无关码,念上就是在可执行程序装载它们的时候,它们可以放在可执行程序的内存里的任何地方。
- -L. :表示要连接的库所在的目录。
- -l:指定链接时需要的动态库。编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.a/.so来确定库的名称。
- -Wall :生成所有警告信息。
- -ggdb :此选项将尽可能的生成gdb的可以使用的调试信息。
- -g :编译器在编译的时候产生调试信息。
- -c :只激活预处理、编译和汇编,也就是把程序做成目标文件(.o文件)。
- -Wl,options :把参数(options)传递给链接器ld。如果options中间有逗号,就将options分成多个选项,然后传递给链接程序。
作者:AlbertWen
添加时间:2016-04-13 23:05:44
修改时间:2025-09-10 09:51:29
分类:
13.C/C++/Rust/仓颉
编辑
应该是小试牛刀的时候了。
在 ANSI C 的标准库中,有一个 atexit()函数。如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数。
atexit()的原型定义如下:
int atexit(void (*func)(void));
作者:AlbertWen
添加时间:2016-02-12 23:30:05
修改时间:2025-09-09 01:13:02
分类:
13.C/C++/Rust/仓颉
编辑
本节的任务:
1、建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc向终端输出Hello World字符串;
2、安装头文件与共享库。
作者:AlbertWen
添加时间:2016-03-06 20:00:59
修改时间:2025-09-16 18:38:43
分类:
13.C/C++/Rust/仓颉
编辑
一、fork入门知识
一个进程,包括代码、数据和分配给进程的资源。fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
一个进程调用fork() 函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

作者:AlbertWen
添加时间:2017-10-27 19:24:13
修改时间:2025-09-09 03:53:06
分类:
13.C/C++/Rust/仓颉
编辑
所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看CPU类型以及运行在上面的操作系统。同一款CPU在不同的操作系统使用的大小端情况是不同的。当然我们通常使用的 x86 + windows是小端。
作者:AlbertWen
添加时间:2015-11-15 21:18:05
修改时间:2025-09-09 01:20:55
分类:
13.C/C++/Rust/仓颉
编辑
Makefile能帮助C语言建立自动化的编译。一旦写好,执行一个make命令就可以编译整个工程。当然编写Makefile文件的时候有很多知识点在里面。这篇文章主要讲解如何编写基础性以及常用的Makefile文件。
作者:AlbertWen
添加时间:2017-10-27 10:00:40
修改时间:2025-09-09 04:17:18
分类:
13.C/C++/Rust/仓颉
编辑
Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,如图示:

作者:AlbertWen
添加时间:2016-01-09 11:18:47
修改时间:2025-09-15 21:52:55
分类:
13.C/C++/Rust/仓颉
编辑
Rango会讲解在Linux下从零开始写一个PHP扩展,并编译安装到PHP里,一直到执行扩展中的函数。包含的内容有:
- 为什么要开发PHP扩展
- ext_skel工具的使用
- 修改config.m4
- phpize的使用
- 必备工具,autoconf / gcc / make / php5 / php5-dev
- ZendAPI的使用简介,会介绍几个重要的API