You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++项目中使用g++编译链接Botan库的问题求助

C++项目链接Botan库时头文件找不到的问题

项目目录结构

C:.
├───.vscode
├───botan
│   └───internal
└───lib
    ├───botan
    │   ├───.github
    │   │   ├───actions
    │   │   │   └───setup-build-agent
    │   │   └───workflows
    │   ├───build
    │   │   ├───docs
...

尝试的编译命令

g++ main.cpp -o main.exe -Ilib/botan/build/include/botan -Llib/botan -lbotan-3

main.cpp代码

#include <botan/aes.h>

报错信息

main.cpp:1:10: fatal error: botan/aes.h: No such file or directory
1 | #include <botan/aes.h>
|          ^~~~~~~~~~~~~
compilation terminated.

补充说明

  • 试过Botan下其他头文件,同样报找不到的错误
  • 已经成功编译完成Botan库

解决方法

1. 修正头文件搜索路径

你当前-I参数指定的lib/botan/build/include/botan是错误的。因为#include <botan/aes.h>要求编译器在-I指定的目录下,找到botan子目录里的aes.h。所以应该把-I指向包含botan目录的上级路径,也就是lib/botan/build/include。

同时,编译后的Botan库文件一般在build/lib目录下,不是lib/botan根目录,所以-L参数也要调整。修正后的编译命令:

g++ main.cpp -o main.exe -Ilib/botan/build/include -Llib/botan/build/lib -lbotan-3

2. 确认头文件实际位置

手动去lib/botan/build/include目录下检查,是否存在botan子目录,且里面有aes.h等头文件。如果实际路径和这个不符,把-I参数改成正确的上级目录即可。

3. 核对Botan编译配置

如果编译Botan时指定了自定义安装前缀,头文件可能不在build/include里,而是在你指定的安装路径中。可以重新查看Botan编译时的输出,或者直接在文件系统里搜索aes.h,找到正确的路径后再调整编译参数。

内容的提问来源于stack exchange,提问作者Syed Salman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:55:17