我有一个 C 语言程序,它在 debian 盒子中完美运行。我被要求在 CentOs 6.5 上编译和运行它。除了我尝试从配置文件中获取值的部分之外,一切都可以完美编译。代码是这样写的:
char config_file[150]="file.conf";
config_t cfg;
config_setting_t *ssl_xor_key;
char xkey[256];
ssl_xor_key = config_lookup(&cfg, "ssl.xor.key");
strcpy(xkey,config_setting_get_string(ssl_xor_key));
配置文件包含以下内容:
ssl:
{
xor:
{
key="textexttextexttextext";
};
};
当程序到达 config_setting_get_string 时,它会崩溃。我试图在 strcpy 命令中设置字符串并且它可以工作。我在 /var/log/messages 上看到了这个:
kernel: mysql-proxy[9808]: segfault at 8 ip 00007f3ba9d53d12 sp 00007f3baab8a0d8 error 4 in libconfig.so.8.0.0[7f3ba9d51000+a000]
我已经看到,虽然最初的 Debian 机器有 libconfig 1.4.9,但 CentO 的最新版本是 1.3.2。我不确定该版本是否支持该命令,因为我无法找到旧版本的文档。
我也尝试在 Centos Box 上编译最新版本,但我在过程中遇到错误,所以我认为它不受支持。
知道什么可以解决吗?