如何在Simics 6.0.185环境中正确重编译instrumentation-tracer-tool扩展
重编译Simics-Base instrumentation-tracer-tool扩展的正确步骤
针对Ubuntu 20.04 + Simics 6.0.185环境,按以下步骤操作:
加载Simics环境变量
先执行Simics安装目录下的环境初始化脚本,确保编译所需的路径、变量都正确设置:source /path/to/your/simics-install/bin/setup-env.sh替换
/path/to/your/simics-install为实际的Simics安装路径。进入扩展源码目录
找到Simics-Base包内的instrumentation-tracer-tool源码目录,通常路径类似:cd /path/to/simics-base/src/instrumentation-tracer-tool替换
/path/to/simics-base为Simics-Base包的实际路径(一般在Simics安装目录的packages/simics-base下)。清理旧编译产物
先清理之前的编译文件,避免残留影响:make clean编译目标平台模块
直接调用make并指定目标平台为linux64(对应Ubuntu 64位环境):make linux64这个Makefile里的
$(MODULE_MAKEFILE)是Simics内置的模块编译模板,环境变量加载正确的话会自动指向Simics提供的标准编译配置,无需手动指定。替换或加载编译后的模块
- 编译完成后,产物会生成在当前目录的
linux64/lib下,即instrumentation-tracer-tool.so。 - 不要直接手动替换Simics-Base包原有
linux64/lib下的文件(容易出现权限或版本匹配问题),推荐用以下两种方式加载:- 临时加载(用于测试):启动Simics时,通过命令行添加模块路径:
进入Simics后直接加载模块:simics -module-path /path/to/instrumentation-tracer-tool/linux64/libload-module instrumentation-tracer-tool - 永久替换(需注意权限):如果确认编译正常,将编译后的
.so文件复制到Simics-Base包的对应目录:
替换路径为实际的Simics-Base包linux64/lib路径。sudo cp linux64/lib/instrumentation-tracer-tool.so /path/to/simics-base/linux64/lib/
- 临时加载(用于测试):启动Simics时,通过命令行添加模块路径:
- 编译完成后,产物会生成在当前目录的
验证编译结果
启动Simics并加载模块,检查是否报错:simics -batch -command 'load-module instrumentation-tracer-tool; quit'如果没有报错,说明编译成功。
常见问题说明
- 执行
make时提示找不到$(MODULE_MAKEFILE):检查是否正确加载了Simics的setup-env.sh脚本,该脚本会自动设置MODULE_MAKEFILE变量指向Simics的标准模块编译文件。 - 手动替换后加载报错:大概率是编译产物与原有模块的依赖或版本不匹配,用
make编译时会自动使用Simics的编译链和依赖库,避免这类问题。 create-modcache/create-package无效:因为该扩展是Simics-Base包的内置模块,并非独立包,这两个命令仅适用于带有packageinfo的独立扩展包,所以直接用make编译即可。
内容的提问来源于stack exchange,提问作者guydeloimba
相关产品推荐
相关产品推荐

