You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VMware Ubuntu 20.04安装GODDeSS包时Makefile Error 2问题求助

解决GODDeSS编译时的函数参数不匹配错误

嘿,你遇到的问题和Python兼容性完全没关系哦!这是C++函数声明与定义参数类型不匹配导致的编译错误,我来给你一步步讲清楚怎么修复:

错误原因分析

从报错信息能看到两个核心问题:

  1. 函数声明和定义的参数类型不一致:
    • 头文件Properties.hh里声明的parseTabular函数参数是std::ifstream& in(引用类型)
    • 但源文件Properties.cc里的定义却是std::ifstream* in(指针类型),编译器找不到对应声明,所以报错
  2. 函数调用时的参数类型不匹配:
    调用parseTabular时传了指针&in,但函数需要的是引用类型,导致类型转换失败

具体修复步骤

1. 修改函数定义的参数类型

打开文件 /home/simulation/goddess/source/G4BasicObjects/G4PropertyFileReadInTools/src/Properties.cc,找到第72行的函数定义:

void Properties::parseTabular(std::ifstream* in, std::string key) {

把它改成和头文件一致的引用类型:

void Properties::parseTabular(std::ifstream& in, std::string key) {

同时,记得把函数内部所有用到in->的地方改成in.(因为引用使用点操作符,指针才用箭头)。

2. 修改函数调用的参数

还是在Properties.cc里,找到第191行的调用代码:

parseTabular(&in, result[1]);

把&in改成in(直接传递对象本身,编译器会自动转换为引用):

parseTabular(in, result[1]);

最后验证

改完这两处之后,重新执行make -j2 install,应该就能顺利编译了。

内容的提问来源于stack exchange,提问作者Abhinab Mukhopadhyay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:33:13