0

我想在LAMMPS中使用Open3d。Open3D详细介绍了如何使用 cmake 查找预安装的 Open3D 包。

使用上述内容,我编写了一个 cmake 文件,我相信 LAMMPS 在其构建阶段使用它来查找包并链接它们。奇怪的是,这条线

target_link_libraries(lammps PRIVATE Open3D::Open3D)

似乎导致编译器在 LAMMPS src 代码中发现错误,即

/home/USER/lammps/src/fmtlib_format.cpp:58:51: error: duplicate explicit instantiation of ‘struct fmt::v7_lmp::detail::basic_data<void>’ [-fpermissive]
   58 | template struct FMT_INSTANTIATION_DEF_API detail::basic_data<void>;

如果我注释 target_link_libraries 语句,代码编译得很好(但不链接到 Open3D)。抱歉无法提供 MWE,因为我不知道如何以简单的方式复制此行为。您能否向我解释一下为什么 target_link_libraries 命令会导致编译器在 LAMMPS src 代码中发现错误并提供解决方案来防止这种情况发生?如果相关,我正在使用 Clion 2021.1.2 和

CMAKE_CXX_COMPILER_VERSION = 9.3.0
CMAKE_CXX_STANDARD = 11
CMAKE_VERSION = 3.19.2
4

0 回答 0