我正在尝试构建 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) 试图用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)
在那之后一切都停滞了。