c++编译问题,求各路大神指点!

z253642075 2014-12-12 08:24:26
编译autodock程序出错!
错误代码为:

read_parameter_library.cc: 在函数‘void setup_parameter_library(FILE*, int, const char*, Unbound_Model, Linear_FE_Model*)’中:
read_parameter_library.cc:221:39: 错误:‘param_string_4_1’在此作用域中尚未声明
const char *const *param_string = param_string_4_1; // default
^
read_parameter_library.cc:223:22: 错误:‘param_string_4_0’在此作用域中尚未声明
param_string=param_string_4_0;
^
make[1]: *** [autodock4-read_parameter_library.o] 错误 1
make[1]: 离开目录“/root/src/autodock”
make: *** [all] 错误 2
[root@localhost autodock]#


read_parameter_library.cc文件的相关代码为:


// Default parameters
//
// These are set up in "default_parameters.h"
// and stored in the param_string_VERSION_NUM[MAX_LINES] array
// so far we have param_string_4_0 and param_string_4_1
// remember this choice for report_parameter_library()

const char *const *param_string = param_string_4_1; // default
if (unbound_model==Extended) {
param_string=param_string_4_0;
strncpy(parameter_library, "'extended' [AutoDock 4.0 default]", sizeof parameter_library);
}
else if (unbound_model==Unbound_Same_As_Bound) {
param_string=param_string_4_1;
strncpy(parameter_library, "'same as bound' [AutoDock 4.2 default]", sizeof parameter_library);
}
else {
sprintf(msg, "BUG: cannot determine %s parameter values \n",model_text);
stop(msg);
}


while ( param_string[counter] != NULL) {
const char* const s = param_string[counter];
param_keyword = parse_param_line(s);

(void)strcpy(parameter_library_line, param_string[counter]);
counter++;
if (debug > 0) {
pr(logFile, "DEBUG: parameter_library_line = %sDEBUG: param_keyword = %d\n", parameter_library_line, param_keyword);
}

switch (param_keyword) {
case PAR_:
case PAR_NULL:
case PAR_COMMENT:
break;

case PAR_VDW:
process( coeff_vdW, "van der Waals term")
break;

case PAR_HBOND:
process( coeff_hbond, "H-bonding term")
break;

case PAR_ESTAT:
process( coeff_estat, "electrostatic term")
break;

case PAR_DESOLV:
process( coeff_desolv, "desolvation term")
break;

case PAR_TORS:
process( coeff_tors, "torsional term")
break;

case PAR_UNBOUND:
sprintf(msg,
"%s: ERROR: the unbound model cannot be specified in the parameter library file.\nUse the DPF parameter 'unbound_model' instead.\n",
programname);
stop(msg);
break;

case PAR_ATOM_PAR:



怎么解决?求各位牛人帮帮忙,谢谢!
更多 0
...全文
255 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
z253642075 2014-12-14
  • 打赏
  • 举报
回复
引用 2 楼 kmsch 的回复:
你之前是不是没有声明过param_string_4_1
应该没有,怎么解决?哥!
kmsch 2014-12-14
  • 打赏
  • 举报
回复
你之前是不是没有声明过param_string_4_1
FightForProgrammer 2014-12-13
  • 打赏
  • 举报
回复
编译器错误提示很明显啊。 ‘param_string_4_1没有在此声明,这个变量定义或声明在哪呢??
!!!当前版本:2014.11.15 !!!更新内容: !!! [+]支持编写静态库(至于步骤请往下看) !!! [+]增加静态库转换工具, 在随本模版的压缩包内(源码) !!! [+]增加 类_写易库.设置_静态库模式() 方法, 用于指定静态库的导出函数名 !!! [-]对 类_写易库.添加命令() 做了改动,主要修改链接名 !!! [-]修复 易语言 无法读取链接名的BUG ========== 1.易支持库机制 ========== !!!易支持库的库信息、命令信息等等均使用某个结构储存 !!!易源码中的自定义数据类型、类模块、组件即为支持库中的库定义数据类型 !!!易语言通过 GetNewInf() 获取支持库信息 !!!所以支持库必须导出这个函数 ========== 2.支持库命令调用 ========== !!!支持库的命令调用方式也比较特殊 !!!每个命令需要三个参数:返回值指针,参数数目,参数信息指针 !!!做个一个库定义数据类型的方法,每个方法的第一个参数为指向该对象的结构指针 ========== 3.简单说下易源码 ========== !!!易保存源码时没有保存各信息名称(比如命令名、数据类型名),而是保存了索引 !!!所以支持库内的各信息有必要时可以修改 !!!但不要改动TA们的顺序,这会导致前期版本的源码出现问题 ========== 4.模版说明 ========== !!!本模版整天来说思路清晰,代码连小白都能理解 !!!模版多数的参数使用通用型,使得模版简便 !!!模版内没有多说废话, 直接把关键的过了一遍, 足够写支持库了 !!!每条命令都演示了支持库的各种操作,能想到的都先写了 !!!暂时没写组件,目前没什么时间了,玩着电脑也冷~ !!!尽量抽时间将组件的开发也模块化 !!!或者各位有心人士可参考 e\sdk\cpp\samples\HtmlView 写一下 ========== 5.关于静态库 ========== !!!静态库的编译本人提供了两种方式,不过两种方式都必须要符合下面的要 !!!必须导出(易语言里打上公开属性)库信息通知函数, 函数名必须符合 libName_ProcessNotifyLib 的规则 !!!必须导出所有命令实现函数,函数名必须符合 libName_xxx 的规则 !!!必须导出所有窗口单元信息函数,函数名必须符合 libName_GetInterface_控件英文名。2014.11.13这个版本的模版包括前面的暂时木有组件,所以不会有这个函数 !!! !!!第一种方法(#静态库模式_SalHe) !!!将支持库编译 !!!此时还不能做为静态库发布 !!!使用本人写的工具 FNE转LIB 将编译后的支持库转换 !!!转换之后的文件即可作为静态库发布了 !!!工具的使用方法详见工具的自我介绍 !!! !!!第二种方法(#静态库模式_WonderWall) !!!下载一个易语言支持库(插件):WonderWall !!!易语言勾上这个支持库之后并开启静态库编译功能(易语言菜单 -> 工具 -> WonderWall) !!!易语言菜单 -> 编译 -> 静态库编译 !!!此时再拖入工具中加工(进行符号重命名) !!! !!!至于我写的那个工具也放得有源码, 所以要知道原理的话可以看看源码 !!! !!!那么WonderWall编译静态库为什么要另外弄个模式呢?请转到 类_写易库.添加命令() 查看, 看的更清楚 ========== 6.为何选择支持库 ========== !!!其实用模块扩展程序也是足够了 !!!选择做支持库还是安全的 !!!而且支持库有许多模块做不到的功能 ========== 7.关于易功能函数 ========== !!!顾名思义, 就是易内部提供给支持库的函数 !!!主要的用法呢还是得参考 lib2.h(位于 e\sdk\cpp\elib\lib.h) !!!虽说是一个C++头文件,但是语文好点、懂易语言就能理解 !!!小学生的语文水平就差不多啦 !!!我还是把一些常用的写到了 类_易功能 这个类里面 !!!各位同学可以看看、、 ========== 【最后】 ========== !!!直说:本人纯属菜鸟一枚, 各路大神勿喷即可 ==========【信息】========== !!!模版:易支持库模版 !!!作者:SalHe(Rabbit Group) !!!声明:大鸟勿喷即可 !!!日期:2014年11月15日 !!!论坛: !!! 精易论坛 : http://bbs.125.la/uid-186545 !!! 易语言官方论坛:http://bbs.eyuyan.com/u.php?uid=6
========== 1.易支持库机制 ========== !!!易支持库的库信息、命令信息等等均使用某个结构储存!!!易源码中的自定义数据类型、类模块、组件即为支持库中的库定义数据类型!!!易语言 通过 GetNewInf() 获取支持库信息!!!所以支持库必须导出这个函数 ========== 2.支持库命令调用 ========== !!!支持库的命令调用方式也比较特殊!!!每个命令需要三个参数:返回值指针,参数数目,参数信息指针!!!做个一个库定义数据类型的方法,每个方法的第一个参数为指向该对象的结构指针 ========== 3.简单说下易源码 ========== !!!易保存源码时没有保存各信息名称(比如命令名、数据类型名),而是保存了索引!!!所以支持库内的各信息有必要时可以修改!!!但不要改动TA们的顺序,这会导致前期版本的源码出现问题 ========== 4.模版说明 ========== !!!本模版整天来说思路清晰,代码连小白都能理解!!!模版多数的参数使用通用型,使得模版简便!!!模版内没有多说废话, 直接把关键的过了一遍, 足够写支持库了!!!每条命令都演示了支持库的各种操作,能想到的都先写了!!!暂时没写组件,目前没什么时间了,玩着电脑也冷~!!!尽量抽时间将组件的开发也模块化!!!或者各位有心人士可参考 e\sdk\cpp\samples\HtmlView 写一下 ========== 5.关于静态库 ========== !!!本人目前只做了动态库,不做静态库原因很多!!!本来打算做静态库的,不过考虑到某些原因:!!!静态库误报,动态库转到静态库时也会出现一些未知问题!!!个人也建议使用独立编译,5.3已经恢复!!!更建议用 黑月Cool编译!!!或者直接就是一个“懒”字!!!!各路有心人士可动手改一下!!!我也弄好了静态连接名的录入机制 ========== 6.为何选择支持库 ========== !!!其实用模块扩展程序也是足够了!!!选择做支持库还是安全的!!!而且支持库有许多模块做不到的功能 ========== 7.关于易功能函数 ========== !!!顾名思义, 就是易内部提供给支持库的函数!!!主要的用法呢还是得参考 lib2.h(位于 e\sdk\cpp\elib\lib.h)!!!虽说是一个C++头文件,但是语文好点、懂易语言就能理解!!!小学生的语文水平就差不多啦!!!我还是把一些常用的写到了 类_易功能 这个类里面!!!各位同学可以看看、 、 ========== 【最后】 ========== !!!直说:本人纯属菜鸟一枚, 各路大神勿喷即可 ==========??【信息】??========== !!!模版:易支持库模版!!!作者:SalHe(Rabbit Group)!!!声明:大鸟勿喷即可!!!日期:2014年11月8日怎么编译我还是简单说一下,针对一下小白。编译的时候将文件名的后缀改为fne在放入易语言的支持库目录就好了支持库一发布后就不要修改数字签名和支持库文件名了
========== 1.易支持库机制 ========== !!!易支持库的库信息、命令信息等等均使用某个结构储存 !!!易源码中的自定义数据类型、类模块、组件即为支持库中的库定义数据类型 !!!易语言通过 GetNewInf() 获取支持库信息 !!!所以支持库必须导出这个函数 ========== 2.支持库命令调用 ========== !!!支持库的命令调用方式也比较特殊 !!!每个命令需要三个参数:返回值指针,参数数目,参数信息指针 !!!做个一个库定义数据类型的方法,每个方法的第一个参数为指向该对象的结构指针 ========== 3.简单说下易源码 ========== !!!易保存源码时没有保存各信息名称(比如命令名、数据类型名),而是保存了索引 !!!所以支持库内的各信息有必要时可以修改 !!!但不要改动TA们的顺序,这会导致前期版本的源码出现问题 ========== 4.模版说明 ========== !!!本模版整天来说思路清晰,代码连小白都能理解 !!!模版多数的参数使用通用型,使得模版简便 !!!模版内没有多说废话, 直接把关键的过了一遍, 足够写支持库了 !!!每条命令都演示了支持库的各种操作,能想到的都先写了 !!!暂时没写组件,目前没什么时间了,玩着电脑也冷~ !!!尽量抽时间将组件的开发也模块化 !!!或者各位有心人士可参考 e\sdk\cpp\samples\HtmlView 写一下 ========== 5.关于静态库 ========== !!!本人目前只做了动态库,不做静态库原因很多 !!!本来打算做静态库的,不过考虑到某些原因: !!!静态库误报,动态库转到静态库时也会出现一些未知问题 !!!个人也建议使用独立编译,5.3已经恢复 !!!更建议用 黑月Cool编译 !!!或者直接就是一个“懒”字! !!!各路有心人士可动手改一下 !!!我也弄好了静态连接名的录入机制 ========== 6.为何选择支持库 ========== !!!其实用模块扩展程序也是足够了 !!!选择做支持库还是安全的 !!!而且支持库有许多模块做不到的功能 ========== 7.关于易功能函数 ========== !!!顾名思义, 就是易内部提供给支持库的函数 !!!主要的用法呢还是得参考 lib2.h(位于 e\sdk\cpp\elib\lib.h) !!!虽说是一个C++头文件,但是语文好点、懂易语言就能理解 !!!小学生的语文水平就差不多啦 !!!我还是把一些常用的写到了 类_易功能 这个类里面 !!!各位同学可以看看、、 ========== 【最后】 ========== !!!直说:本人纯属菜鸟一枚, 各路大神勿喷即可 ==========  【信息】  ========== !!!模版:易支持库模版 !!!作者:SalHe(Rabbit Group) !!!声明:大鸟勿喷即可 !!!日期:2014年11月8日

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧