c代码编译和系统日志

一.编译

下载一个软件的时候,如果是c代码的话,那它就会有自己的头文件(也就是.h文件),也会有二进制文件(是可以直接运行的),也会有库文件(.so, 库文件的根本目的在于别的软件需要用到该源码,比如 powerdns用到lua,这种情况的话就需要把 so的库文件连接进来)

往往通过源码编译的时候,需要指定这几个重要文件所在的目录,如果没有指定prefix的话

像库文件一般就是在 /lib或者/usr/lib的目录下面

像头文件一般就是在/usr/include或者/usr/local/include下

不同的软件会有不同的安装路径,但是无外乎就只有这些

然后修改makefile文件

主要是要找到软件的include所在的目录以及 动态库所在的目录

然后把它们放到LUA_CPPFLAGS_CONFIG和LUA_LIBS_CONFIG这俩个变量下

注意赋值的方式,比如说像这样的

其中-I指定的就是  头文件所在的目录,-L指定的是静态库所在的目录,-l指定的则是库文件的名字,注意是去掉lib的

LUA_CPPFLAGS_CONFIG:= $(LUA_CPPFLAGS_CONFIG) -I/usr/include/lua5.1

LUA_LIBS_CONFIG:= $(LUA_LIBS_CONFIG) -L/usr/lib/x86_64-linux-gnu/ -llua5.1

二.日志

整个系统一般会有俩套日志系统,一个是syslog,还有一个是rsyslog

会有一些软件和系统的日志公用一套内容

它们的目录都在/etc下面

会有专门的local0~local7是预留给自定义的应用软件的,也就是说如果在应用软件指定local0,而且在syslog.conf或者rsyslog.conf中配置 ,那么该软件的日志就会打入指定的目录了

Local0.info tab键 目录(/var/log/pdns)

你可能感兴趣的:(工作中遇到的问题,c编译)