Linux操作系统的头文件和库文件搜索路径
一、 头文件 1 “”中的头文件,在源文件当前目录查找 2 -I 中指定目录 3 gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH 4 编译器预设路径、内定目录: /usr/include /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.2/include /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include 但是假如装gcc的时候,有给定的prefix的话,那么就是 /usr/include prefix/include prefix/xxx-xxx-xxx-gnulibc/include prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include 此外-I还可以在CFLAG中指定。 还可用pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。 Linux下那么多库,在./configure时时怎么判断它们存不存在的,难道是靠递归搜索?pkg-config这个命令和/*/lib/pkgconfig下的一些.pc文件才是主角。每个.pc文件定义了库的名字、路径、编译选项等,比如glib-2.0.pc文件: prefix=/usr exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/include glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums Name: Glib
Description: C Utilitiy Library
Version: 2.14.4
Libs: -L${libdir} -lglib-2.0
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include --cflags 参数可以给出在编译时所需要的选项,而 --libs 参数可以给出连接时的选项 configure到某个库的时候,pkg-config命令会首先去PKG_CONFIG_PATH定义好的路径下搜索库名字对应的.pc文件,找到了就行了,等会儿make的时候就可以通过正则表达式取出libs和cflags的值来使用。 配置 pkgconfig PKG_CONFIG_PATH 的缺省设置是 /lib/pkgconfig, /usr/lib/pkgconfig 和 /usr/local/lib/pkgconfig. 这些设置都是硬编码的,所以不用另外设置它们。 二、 库文件 Ø 编译的时候动态库的搜索路径: 1 gcc会去找-L 指定的路径和 –l指定的库 2 由'-rpath-link'选项指定的搜索路径 在LDFLAGS中gcc 的参数"-Wl,-rpath,"指定 3 由'-rpath'指定的搜索路径. '-rpath'跟'-rpath_link'的不同之处在于,由'-rpath'指定的路径被包含在可执行文件中,并在运行时使用, 而'-rpath-link'选项仅仅在连接时起作用. 4 再找内定目录 /lib
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
在Linux操作系统下修改IP、DNS和路由配置
ifconfig eth0 新ip
然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip
一、修改IP地址
[aeolus@db1 network-scripts]$ vi ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=219.136.241.211
NETMASK=255 ......
Anatomy of the Linux slab allocator
Learn how Linux manages memory
M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones is an embedded software architect and the author of GNU/Linux Application Programming, AI Application Programming, and BSD Sockets Programming from a Multilanguage Persp ......
网卡的设置
见以前的文章
主机名的设置:
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=a100 ----->主机名
smb是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;
......
linux目录架构
/ 根目录
/bin 常用的命令 binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) &nb ......