You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

编译APBS程序时出现CMake错误,寻求解决方案

解决APBS编译时的两个CMake错误

嘿,你在编译APBS时碰到的这两个CMake问题我之前也帮人处理过,咱们一步步来搞定:

1. 缺失/无效的rpc/rpc.h头文件,XDR支持被禁用

这个问题本质是现代Linux发行版(比如Ubuntu 20.04+、CentOS 8+)已经把传统RPC相关的头文件和库移到了tirpc(Transport Independent RPC)包里,默认没安装。按你的系统类型来操作:

Debian/Ubuntu系

先安装tirpc开发包:

sudo apt update && sudo apt install libtirpc-dev

然后重新跑CMake时,手动指定头文件和库的路径,让CMake能找到它:

cmake .. -DCMAKE_INCLUDE_PATH=/usr/include/tirpc -DCMAKE_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

RedHat/CentOS/Rocky Linux系

安装对应开发包:

sudo dnf install libtirpc-devel

再带路径参数运行CMake:

cmake .. -DCMAKE_INCLUDE_PATH=/usr/include/tirpc -DCMAKE_LIBRARY_PATH=/usr/lib64

macOS(用Homebrew)

先装tirpc

brew install tirpc

然后用brew的路径来配置CMake:

cmake .. -DCMAKE_INCLUDE_PATH=$(brew --prefix tirpc)/include -DCMAKE_LIBRARY_PATH=$(brew --prefix tirpc)/lib

这样操作后,CMake就能找到rpc/rpc.h,XDR支持也会正常启用。

2. install FILES given no DESTINATION 错误

这个是maloc子项目的CMake配置漏了安装路径参数,得手动改一下文件:

  • 打开externals/fetk/maloc/src/CMakeLists.txt,找到第40行的install(FILES ...)语句
  • 在语句末尾加上DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/maloc,比如原来的代码是:
    install(FILES maloc.h mem.h etc.h)
    
    修改后变成:
    install(FILES maloc.h mem.h etc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/maloc)
    
  • 保存文件后,删掉之前生成的CMake缓存和临时文件:
    rm -rf CMakeCache.txt CMakeFiles
    
  • 重新运行cmake ..和后续的编译命令就行。

做完这两步,你的APBS编译应该就能顺利推进了。

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

火山引擎 最新活动