在使用vcpkg成功安装库之后,使用cmake进行构建的时候一直提示找不到包,如下所示

我这里安装时调用的是

vcpkg install sqlpp11
CMake Error at CMakeLists.txt:4 (find_package):
  Could not find a package configuration file provided by
  "unofficial-sqlite3" with any of the following names:

    unofficial-sqlite3Config.cmake
    unofficial-sqlite3-config.cmake

  Add the installation prefix of "unofficial-sqlite3" to CMAKE_PREFIX_PATH or
  set "unofficial-sqlite3_DIR" to a directory containing one of the above
  files.  If "unofficial-sqlite3" provides a separate development package or
  SDK, be sure it has been installed.

 最后发现在CMakeLists.txt里面需要添加这样一行,这里是我本机的vcpkg路径,需要根据自己电脑安装位置填写

include(/home/ubuntu/home/vcpkg/scripts/buildsystems/vcpkg.cmake)

成功解决问题

完整CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 3.0)
project(test)

include(/home/ubuntu/home/vcpkg/scripts/buildsystems/vcpkg.cmake)
find_package(unofficial-sqlite3 CONFIG REQUIRED)

add_executable(testvcpkg test_vcpkg.cpp)

target_link_libraries(testvcpkg PRIVATE unofficial::sqlite3::sqlite3)

test_vcpkg,.cpp 文件如下所示

#include <iostream>
#include <sqlite3.h>

int main() {
  sqlite3 *db;
  int rc = sqlite3_open("test.db", &db);
  if (SQLITE_OK == rc) {
    std::cout << "Hello Geek! The SQLite database opened successfully! \n";
    sqlite3_close(db);
  } else {
    std::cout << "Can't open the SQLite database: " << sqlite3_errmsg(db) << "\n";
  }
  return 0;
}

编译命令

cmake -G Ninja -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/home/ubuntu/home/vcpkg/scripts/buildsystems/vcpkg.cmake

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐