小编mat*_*guy的帖子

如何在 Windows 中使用 cmake 构建和链接谷歌基准测试

我正在尝试构建 google-benchmark 并使用 cmake 将它与我的库一起使用。我已经成功构建了 google-benchmark 并使用 cmake 成功运行了所有测试。不幸的是,我无法使用 cmake 或 cl 在 windows 中将它与我的 c++ 代码正确链接。

我认为的问题是 google-benchmark 在 src 文件夹中构建库,即它构建在 src/Release/benchmark.lib 现在我不能在 cmake 中指向它,如果我使用 ${benchmark_LIBRARIES} 它在src 外的 Release 文件夹,因为这是构建所有库的常用位置。并且很难找到在 Windows 中工作的示例。

这是我尝试过的两种方法,都可以构建库并运行所有测试,但我无法正确地将库指向 target_link_library

include(ExternalProject)
ExternalProject_Add(googlebenchmark
  GIT_REPOSITORY    https://github.com/google/benchmark.git
  GIT_TAG           master
  SOURCE_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-src"
  BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build"
  CONFIGURE_COMMAND ${CMAKE_COMMAND} -B ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build -S ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-src -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON
  BUILD_COMMAND     ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build --config Release 
  INSTALL_COMMAND   ""
  TEST_COMMAND      ${CMAKE_CTEST_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-src ${CMAKE_CURRENT_BINARY_DIR}/googlebenchmark-build --build-config Release 
)
Run Code Online (Sandbox Code Playgroud)

ExternalProject_Add(googlebenchmark
  GIT_REPOSITORY    https://github.com/google/benchmark.git
  GIT_TAG           master 
  PREFIX            googlebenchmark
  CMAKE_ARGS        -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON
  BUILD_COMMAND     ${CMAKE_COMMAND} --build …
Run Code Online (Sandbox Code Playgroud)

benchmarking cmake microbenchmark google-benchmark

6
推荐指数
2
解决办法
3521
查看次数

使用带有GHC 8.6.3的cabal new-build的简单Haskell库,构建失败

试图用Haskell构建一个简单的库。它工作了一次,然后停止了工作(很奇怪)

仅运行了几个命令,只有库的简单cabal init

然后添加了以下库

问候

module Greet where


greeet s = "Hey, " ++ s
Run Code Online (Sandbox Code Playgroud)

然后运行cabal new-build,然后运行cabal new-repl

错误如下

Build profile: -w ghc-8.6.3 -O1
In order, the following will be built (use -v for more details):
 - HaskellTry-0.1.0.0 (lib) (ephemeral targets)
Preprocessing library for HaskellTry-0.1.0.0..
GHCi, version 8.6.3: http://www.haskell.org/ghc/  :? for help
Ok, one module loaded.
Prelude Greet> greeet "h"
"
Run Code Online (Sandbox Code Playgroud)

在那之后一切都停滞了。

haskell cabal haskell-platform cabal-new

0
推荐指数
1
解决办法
81
查看次数