C++ 致命错误:botan/botan.h:没有这样的文件或目录

C++ 致命错误:botan/botan.h:没有这样的文件或目录,c++,linux,linker-errors,botan,C++,Linux,Linker Errors,Botan,我接受了来自的建议,检查并找到了/usr/lib/libbotan-1.10.a,因此我使用了链接器标志-lbotan-1.10 我已经成功地编写和编译了websocket++、json spirit、connector/c++和boost::lockfree::spsc_queue 我现在尝试使用botan的PasshHash9散列密码 当我试图用 g++ -Ofast -march=native -o btServer broadcast_server_tls.cpp -I ~/webs

我接受了来自的建议,检查并找到了
/usr/lib/libbotan-1.10.a
,因此我使用了链接器标志
-lbotan-1.10

我已经成功地编写和编译了websocket++、json spirit、connector/c++和
boost::lockfree::spsc_queue

我现在尝试使用botan的PasshHash9散列密码

当我试图用

g++  -Ofast -march=native -o btServer broadcast_server_tls.cpp 
-I ~/websocketpp-master/ -std=c++0x -D_WEBSOCKETPP_CPP11_STL_ 
-D_WEBSOCKETPP_NO_CPP11_REGEX_ -lboost_regex -lboost_system 
-pthread -L/usr/lib -lssl -lcrypto -ljson_spirit -lmysqlcppconn -lbotan-1.10
g++在
#include
行中给出了一个错误,说“
广播服务器\u tls.cpp:12:25:致命错误:botan/botan.h:没有这样的文件或目录

为了在Ubuntu 12.10上安装,我做了
apt获得install libbota1.10-dev

如何更正此问题?

您应该编译为:


g++“无论源文件是什么”“无论您已经在使用什么标志”-I/usr/include/botan-1.10/

正如错误所说,编译器无法找到
botan/botan.h
。要包含文件,您需要有-I标志。你的botan.h住在哪个目录下?奇怪。我想知道为什么国旗可以用链接答案中的样式与其他库一起使用,但不能用植物学…@Gracchus,它在哪里与其他库一起使用?错误非常明显,使用的选项是-I。通常,链接器会给出类似
undefined reference
的错误,这意味着它已经找到了文件(包含函数定义),但当试图找到某个特定函数的代码时,却找不到它。我猜如果
botan
.a
所在的路径不在
链接器的默认搜索中,那么如果删除库的
-l
标志,您将得到一个未定义的引用错误。@Gracchus尝试将
-l/path\u添加到\u dir
其中
path\u to\u dir
是您选择的目录的路径相应的
。存在一个
。是的。成功了。太好了!我首先拿出了
-lbotan-1.10
标志。必须同时拥有它们:位置和旗帜