-1

我收到有关缺少 boost 文件的错误,但据我所知,我已经通过 YAST (OpenSUSE) 安装了它们。但是,我仍然收到错误。我需要帮助解决这个问题。

当从 YAST 包安装不起作用时,我从源代码安装了 boost。它仍然没有工作。我安装了 boost-1.70.0

/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_date_time
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_filesystem
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_system
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_regex
collect2: error: ld returned 1 exit status
make: *** [/home/hafiz/OpenFOAM/OpenFOAM-6/wmake/makefiles/general:142: /home/hafiz/OpenFOAM/hafiz-6/platforms/linux64GccDPInt64Opt/bin/laminarBuoyantSimpleSMOKE] Error 1

我希望通过源代码安装boost,这个错误会得到解决,但它仍然存在。boost 编译成功,如此处所述:

...updated 184 targets...


The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/hafiz/Softwares/boost/boost_1_70_0

The following directory should be added to linker library paths:

    /home/hafiz/Softwares/boost/boost_1_70_0/stage/lib

我不确定是否会自动添加编译器包含路径和链接器库路径。请帮助解决这个问题!谢谢

4

1 回答 1

0

看起来您正在使用 OpenFOAM 和 OpenSMOKE++,因此您遗漏了很多重要信息来实际回答这个问题(例如 OpenFOAM 使用 wmake 而不是明确地制作!)。尽管如此,我将假设您 (1) 已经安装了 OpenFOAM,(2) 正在编译 OpenSMOKE++ 应用程序/求解器,以及 (3) 您唯一的问题是 wmake 找不到您已安装的 boost。

您需要将 boost 路径添加到 (solver)/Make/files EXE_LIBS 部分,以便 wmake 找到 boost:

EXE_LIBS = \
-L$(FOAM_USER_LIBBIN) \
-lfiniteVolume \
-lmeshTools \
-lsampling \
-lfvOptions \
-L$(BOOST_LIB_DIR) 

其中 BOOST_LIB_DIR 是设置为 /home/hafiz/Softwares/boost/boost_1_70_0/stage/lib 的环境变量

有关更多信息,请参阅 OpenFOAM 用户指南第 3.2 节:编译应用程序和库https://cfd.direct/openfoam/user-guide/v6-compiling-applications/#x10-710003.2

此外,stackoverflow 并不是 OpenFOAM 的最佳场所——cfd-online.com 有一个 CFD/OpenFOAM 特定论坛更适合此类问题。

于 2019-07-05T15:14:32.887 回答