Eclipse for C++ 无法识别酿造的 GSL 和 Boost 库

Eclipse for C++ not recognizing brewed GSL and Boost libraries

本文关键字:GSL Boost C++ for 识别 Eclipse      更新时间:2023-10-16

我使用的是运行Mac OS X的系统。我正在使用 Eclipse Oxygen.2 进行 C/C++,就我而言C++。我正在尝试创建一个使用 GSL 和 Boost 库的项目。但是,Eclipse 似乎无法找到 GSL 库,并且似乎可以识别 Boost 库,但似乎无法执行 Boost 库中包含的任何操作。这两个库都是使用自制软件安装的。这是我正在使用的代码:

#include <iostream>
#include <gsl.h>
#include <boost/optional.hpp>
using namespace std;
int main () {
int x = 5;
gsl::owner<int*> p = &x;
boost::optional<string>;
return 0;
}

错误如下:

  1. #include <gsl.h>,显示fatal error: 'gsl.h' file not found

  2. 随着行gsl::owner<int*> p = &x;它显示Symbol 'owner' could not be resolved.

  3. boost::optional<string>;行显示Type 'boost::optional<string>' could not be resolved.这个很奇怪,因为它似乎与boost/optional.hpp文件没有问题。

以下其他信息可能会有所帮助:

我正在使用MacOS X工具链。我应该切换到跨海湾合作委员会工具链吗?

以下是 MacOS X C++链接器>库> C/C++ 构建>>设置的项目首选项下列出的库搜索路径:/usr/local/Cellar/boost/1.66.0/include/usr/local/Cellar/gsl/2.4/include

我正在关注特雷弗·佩恩(Trevor Payne)的"让我们学习C++教程系列"。

看起来您已经将库而不是包含指向头文件。

右键单击项目资源管理器中的保护。从弹出菜单中选择属性。在"属性"对话框 C/C++ 常规路径和符号>中导航。选择"包括"选项卡,将/usr/local/Cellar/boost/1.66.0/include 和/usr/local/Cellar/gsl/2.4/include 添加到所有配置的C++语言中。

从"库">

选项卡中删除包含目录,然后前往"库路径"选项卡以添加库的位置(如果需要)。提升通常只是标题。GSL 我不知道来自 Atom。

很好地识别了正确的问题并提供良好的调试信息。

由于您已经安装了GSL和Boost与Homebrew,它们可能安装正确,编译器找不到正确的头文件和库文件 - 这可能是因为您在错误的设置中使用了不正确的路径。

Linker > Libraries选项中,您将使用加速和 GSL 的两条include路径。这些属于用于查找标头的不同路径选项,而不是库(我不确定它到底在哪里,我没有 mac!确保您在此处仔细遵循教程的说明。

但是,您还需要将库路径放在库选项中:例如/usr/local/Cellar/gsl/2.4/include应该是类似/usr/local/Cellar/gsl/2.4/lib