Windows下CMake构建oatpp-sqlite时无法找到oatpp包的解决方法咨询
环境信息
- oatpp安装目录:
C:\Users\Aditya\oatpp\oatpp-1.3.0-latest - Visual Studio版本:Visual Studio 17 2022
- CMake版本:[请执行
cmake --version查看并补充]
问题描述
在oatpp-sqlite的build目录执行cmake ..时,出现CMake错误:
CMake Error at CMakeLists.txt:52 (find_package):
By not providing "Findoatpp.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "oatpp", but CMake did not find one.
Could not find a package configuration file provided by "oatpp" (requested version 1.3.0) with any of the following names:
oatppConfig.cmake
oatpp-config.cmake
Add the installation prefix of "oatpp" to CMAKE_PREFIX_PATH or set "oatpp_DIR" to a directory containing one of the above files.
已尝试添加CMAKE_PREFIX_PATH参数但无效:
cmake .. -DCMAKE_PREFIX_PATH=C:\Users\Aditya\oatpp\oatpp-1.3.0-latest
解决方案
1. 定位oatpp的配置文件目录
首先在oatpp安装目录下搜索oatppConfig.cmake或oatpp-config.cmake文件,这类文件通常位于以下子目录中:
lib/cmake/oatpp-1.3.0share/oatpp/cmake
比如实际路径可能是C:\Users\Aditya\oatpp\oatpp-1.3.0-latest\lib\cmake\oatpp-1.3.0,请确认该目录下存在上述配置文件。
2. 直接指定oatpp_DIR参数
CMake的oatpp_DIR变量可以直接指向包含配置文件的目录,这比CMAKE_PREFIX_PATH更精准。执行以下命令(替换成你找到的实际路径):
cmake .. -Doatpp_DIR=C:\Users\Aditya\oatpp\oatpp-1.3.0-latest\lib\cmake\oatpp-1.3.0
3. 确认oatpp安装完整性
如果是自行编译安装的oatpp:
- 确认编译时指定的
CMAKE_INSTALL_PREFIX为C:\Users\Aditya\oatpp\oatpp-1.3.0-latest - 确保执行了安装步骤:在Visual Studio中运行
INSTALL项目,或者在oatpp的build目录执行cmake --install .命令
4. 检查CMake版本兼容性
oatpp 1.3.0要求CMake版本至少为3.10,执行cmake --version确认版本,若版本过低请升级CMake。
内容的提问来源于stack exchange,提问作者Aditya Hagawane

