【问题标题】:Cmake file for a Folly projectFolly 项目的 Cmake 文件
【发布时间】:2019-10-23 23:42:39
【问题描述】:

我正在尝试编写一个玩具示例来使用 Facebook 的 Folly library。程序引入如下:

#include <utility>
#include <iostream>
#include <folly/Format.h>
#include <folly/futures/Future.h>
#include <folly/executors/ThreadedExecutor.h>
#include <folly/Uri.h>
#include <folly/FBString.h>

static void print_uri(const folly::fbstring &address)
{
  const folly::Uri uri(address);
  const auto authority = folly::format("The authority from {} is {}", uri.fbstr(), uri.authority());
  std::cout << authority << std::endl;
}

int main()
{
  folly::ThreadedExecutor executor;
  folly::Promise<folly::fbstring> promise;
  folly::Future<folly::fbstring> future = promise.getSemiFuture().via(&executor);
  folly::Future<folly::Unit> unit = std::move(future).thenValue(print_uri);
  promise.setValue("https://conan.io/");
  std::move(unit).get();
  return 0;
}

问题是我不确定编译这样的程序需要哪些库。如果有人可以分享CMakeList.txt 文件以用于Folly 项目,我将不胜感激。

【问题讨论】:

  • 使用可以使用 vcpkg Microsoft 打包器自动将愚蠢的库安装到您的 vc++ 项目中。
  • 你真的试过find_package(folly REQUIRED)吗?根据this file,他们提供目标Folly::folly 和变量FOLLY_INCLUDE_DIRSFOLLY_LIBRARIES。我没有尝试过,但它似乎很琐碎。
  • 非常感谢@Ptaq666。它有帮助,我制作了 CMakeLists。我将在下面发布以帮助其他有类似问题的人。

标签: c++ folly


【解决方案1】:

这是创建Folly 项目所需的CMakeLists.txt

cmake_minimum_required(VERSION 3.7)
find_package(Boost REQUIRED)
find_package(folly REQUIRED)
find_package(Threads REQUIRED)
find_package(gflags REQUIRED)

set(CMAKE_CXX_STANDARD 14)
#include_directories(${Boost_INCLUDE_DIRS})
#include_directories(${folly_INCLUDE_DIRS})

set_and_check(FOLLY_INCLUDE_DIR /usr/local/include/folly)
set_and_check(FOLLY_CMAKE_DIR /usr/local/lib/cmake/folly)
if (NOT TARGET Folly::folly)
  include("${FOLLY_CMAKE_DIR}/folly-targets.cmake")
endif()


set(FOLLY_LIBRARIES Folly::folly)

if (NOT folly_FIND_QUIETLY)
  message(STATUS "Found folly: ${PACKAGE_PREFIX_DIR}")
endif()

add_executable(HelloWorld main.cpp)
target_link_libraries(HelloWorld ${Boost_LIBRARIES} ${FOLLY_LIBRARIES})

【讨论】:

    猜你喜欢
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多