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
标志。必须同时拥有它们:位置和旗帜