当前位置: 技术问答>linux和unix
看代码时的两个问题
来源: 互联网 发布时间:2015-01-01
本文导语: 1. 我看很多linux程序都有这么两行代码: #ifdef HAVE_CONFIG_H # include "config.h" 不知为何意?我没有找到config.h这个文件,也不知道HAVE_CONFIG_H在那儿定义了。 2. 一般可移值程序都有很多条件编译代码...
1. 我看很多linux程序都有这么两行代码:
#ifdef HAVE_CONFIG_H
# include "config.h"
不知为何意?我没有找到config.h这个文件,也不知道HAVE_CONFIG_H在那儿定义了。
2. 一般可移值程序都有很多条件编译代码,例如:
# if defined( HAVE_POSIX_THREAD )
#ifdef HAVE_INT64_T等等,如何确定我的系统有没有这些定义?
怎么查这些定义在某个地方?
#ifdef HAVE_CONFIG_H
# include "config.h"
不知为何意?我没有找到config.h这个文件,也不知道HAVE_CONFIG_H在那儿定义了。
2. 一般可移值程序都有很多条件编译代码,例如:
# if defined( HAVE_POSIX_THREAD )
#ifdef HAVE_INT64_T等等,如何确定我的系统有没有这些定义?
怎么查这些定义在某个地方?
|
1.config.h是根据你的配置脚本常见的,像一般使用.tar.gz各式的程序,都有一个configure文件,由他创建config.h和makefile
2.按照下面的方法作
#include
#include .....
int main()
{
#ifdef XXXXX
printf("XXXXX defined!n");
#else
printf("XXXXX undefinedn");
#end
return 0;
}
2.按照下面的方法作
#include
#include .....
int main()
{
#ifdef XXXXX
printf("XXXXX defined!n");
#else
printf("XXXXX undefinedn");
#end
return 0;
}
|
1:config.h是autoconf生成的configure命令自动生成的。
2:定义的那些常量不用你管,是gcc和configure自动生成的,会自动在编译的时候或在config.h中加入。
3:如果你想自己加入,最简单的方法是./configure之后,手工修改config.h文件。
2:定义的那些常量不用你管,是gcc和configure自动生成的,会自动在编译的时候或在config.h中加入。
3:如果你想自己加入,最简单的方法是./configure之后,手工修改config.h文件。