Eclipse for C ++无法识别自酿的GSL和Boost库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse for C ++无法识别自酿的GSL和Boost库相关的知识,希望对你有一定的参考价值。
我在运行Mac OS X的系统上。我使用Eclipse Oxygen.2 for C / C ++,在我的例子中是C ++。我正在尝试创建一个使用GSL和Boost库的项目。但是,Eclipse似乎无法找到GSL库并且似乎无法识别Boost库,但似乎无法执行Boost库中包含的任何操作。两个库都使用Homebrew安装。这是我正在使用的代码:
#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;
}
错误如下:
- 使用
#include <gsl.h>
线,它显示fatal error: 'gsl.h' file not found
。 - 线
gsl::owner<int*> p = &x;
显示Symbol 'owner' could not be resolved
。 - 线
boost::optional<string>;
显示Type 'boost::optional<string>' could not be resolved
。这个很奇怪,因为它似乎与boost/optional.hpp
文件没有任何问题。
其他信息可能会有所帮助:
我正在使用MacOS X工具链。我应该切换到Cross GCC工具链吗?
以下是项目首选项> C / C ++ Build> Settings> MacOS X C ++ Linker> Libraries:/usr/local/Cellar/boost/1.66.0/include
和/usr/local/Cellar/gsl/2.4/include
下列出的库搜索路径。
我正在关注Trevor Payne的Let's Learn C ++教程系列。
看起来你已经在头文件中指出了库而不是包含。
右键单击Project Explorer中的protect。从弹出菜单中选择属性。在属性对话框中导航C / C ++ General-> Paths And Symbols。选择包含选项卡。添加/usr/local/Cellar/boost/1.66.0/include和/usr/local/Cellar/gsl/2.4/include所有配置的C ++语言。
从“库”选项卡中删除包含目录,然后前往“库路径”选项卡以添加库的位置(如果需要)。 Boost通常只是标题。 GSL我不知道Atom。
很好地识别正确的问题并提供良好的调试信息。
由于您已经使用Homebrew安装了GSL和Boost,因此它们可能已正确安装,并且编译器无法找到正确的头文件和库文件 - 这可能是因为您在错误的设置中使用了错误的路径。
在Linker > Libraries
选项中,您使用两个include
路径用于Boost和GSL。这些属于不同的路径选项,用于查找标题,而不是库(我不确定它的确切位置,我没有mac!)。请确保您在此处仔细遵循教程说明。
但是,您还需要将库路径放在“库”选项中:例如: /usr/local/Cellar/gsl/2.4/include
应该像/usr/local/Cellar/gsl/2.4/lib
以上是关于Eclipse for C ++无法识别自酿的GSL和Boost库的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse for c setup,找不到stdio.h
真机无法在eclipse devices中被识别 以及 被识别后 target为unknown state为offline