- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在为这个问题苦苦挣扎一段时间:我在 Windows 10 下使用 CMake 和 GTest,但我得到一个
(Link target) -> LINK : fatal error LNK1104: cannot open file 'gtest.lib'
但是调试版本的库“gtestd.lib”存在于正确的文件夹中。我使用的是一个简单的文件夹结构:
test [folder]
- CMakeLists.txt
- test.cpp
这意味着 GTest 以某种方式在调试目标下编译(即使使用 CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release 我也无法强制执行),并且 CMake 生成不识别此 GTest 调试目标的 VS 灵魂并尝试链接到发布 'gtest .lib' 版本,该版本不存在。
我的测试 CMakeLists:
cmake_minimum_required(VERSION 2.8.12)
# Third-party library
include(ExternalProject)
ExternalProject_Add(googletest
PREFIX "${CMAKE_BINARY_DIR}/lib"
GIT_REPOSITORY "https://github.com/google/googletest.git"
GIT_TAG "master"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/lib/installed
)
# Define ${CMAKE_INSTALL_...} variables
include(GNUInstallDirs)
# Specify where third-party libraries are located
link_directories(${CMAKE_BINARY_DIR}/lib/installed/${CMAKE_INSTALL_LIBDIR})
include_directories(${CMAKE_BINARY_DIR}/lib/installed/${CMAKE_INSTALL_INCLUDEDIR})
# This is required for googletest
find_package(Threads REQUIRED)
# target_sources
# target_sources(cmake-sample2-main PUBLIC "../src/main.c")
set( SOURCES_TEST test.cpp )
# Test
add_executable(EmotionsModelLibraryTest ${SOURCES_TEST})
# Define the libraries this project depends upon
target_link_libraries(EmotionsModelLibraryTest libEmotionsModelLibrary gtest Threads::Threads)
# Make sure third-party is built before executable
add_dependencies(EmotionsModelLibraryTest googletest)
# has target scope—it adds x/y to the include path for target t.
# You want the former one if all of your targets use the include directories in question. You want the latter one if the path is specific to a target, or if you want finer control of the path's visibility. The latter comes from the fact that target_include_directories() supports the PRIVATE, PUBLIC, and INTERFACE qualifiers.
target_include_directories(EmotionsModelLibraryTest PRIVATE ${CMAKE_SOURCE_DIR}/include)
#possibly add to main after subdirectory
add_test(MyEmotionsModelLibraryTest EmotionsModelLibraryTest)
附注如果我手动设置 Linker > Additional Dependencies to 'gtestd.lib' 显式,它构建没有问题。此外,在 Ubuntu 18.04 下,使用 GTest 的 CMake 完美运行
最佳答案
您如何构建项目?尝试使用:
cmake --build . --config Release
但是您可能会遇到 LNK2038 错误。
关于c++ - CMake 在 Windows 10 下使用 GTest - fatal error LNK1104 : cannot open file 'gtest.lib' , 但存在调试 'gtestd.lib',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035811/
根据 g++ -print-search-dirs,我的 C++ 编译器正在许多目录中搜索库,包括 ... /lib/../lib/: /usr/lib/../lib/: /库/: /usr/lib/
我在 GLUT 演示的顶部看到了代码,我很好奇它的功能。 为什么有人要编写#pragma 而不是只包含库? 最佳答案 此 pragma 允许库作者根据一系列可在编译时分析的标准定义库导入。例如,您可以
Intel describes libm.lib 作为静态库,libmmt.lib 作为多线程静态库 (/MT) 和 libmmds.lib 作为多线程静态库 (/MD) 都实现了 LibM Math
我在 Windows 7 32 位上使用 Visual Studio 2010。 我在 http://www.directxtutorial.com/Lesson.aspx?lessonid=9-4-
我正在尝试将一些 html 转换为 pdf。经过一些谷歌搜索后,我发现 dompdf但是当我尝试转换时,我会检索 PHP-font-lib must either be installed via c
目前我的visual studio基本上是在生成Engine.dll和Game.exe Engine.dll 链接到其他一些基本库,例如:d3dx9d.libComCtl32.libWinMM.lib
我正在尝试将 material-ui 用于项目。使用它时会抛出以下错误: 我曾尝试通过 github 存储库解决类似问题,但没有任何运气。任何人都有任何想法可能是什么问题?我正在添加 package.
为了简化,我有两个库:libA.lib、libB.lib libA 具有以下功能: void read(num,*val){ *val=Globalval[num]; ... } libB: void
我有一个包含两个项目的 VS2010 解决方案。第一个项目 [DevLib] 是一个库,它基本上是另一个我们没有源代码的库 [ExtLib] 的包装器。构建这个库工作正常。 第二个项目 [TestAp
我想用我做了一些小更改的系统库替换它。这两个库都是使用相同版本的cyanogenmod 源代码编译的。我复制到 SD 卡的那个可以在早期的 CM 闪存上运行。 现在我尝试运行以下命令: $ adb s
我正在使用源代码中的Postgres 13(Rel_13_STRATE分支),并且我使用的是来自apachea/age源代码的(Release/PG13/1.3.0分支)中的1.3.0版的Apache
看起来 Jetty 团队想要在版本 6 和 7 之间进行一些 Spring 清理,并且看起来好像一个有用的系统属性“jetty.lib”不存在、不起作用,或者只是在未指定的情况下发生了更改以便使我的
我正在尝试使用 unixODBC 连接到 Oracle,但它不起作用。到目前为止,我已经尝试关注 How do I setup Oracle ODBC drivers on RHEL 6/Linux
我在我的 Linux Mint 14 Nadia 中安装了 Matlab(a uname -a 显示:Linux Ideapad-Z570 3.5.0-17-generic#28-Ubuntu SMP
我有一个需要使用 macdeployqt 设置的应用程序,但是当我调用它时,它告诉我它无法在/usr/lib/目录中找到一些库。 在调用 macdeployqt 之前,我必须将 3 个库 (.tx)
此特定问题是由于指定对路径中包含空格的 lib 文件的依赖项引起的。路径需要用引号括起来,项目才能正确编译。 在项目属性的Configuration Properties -> Linker -> I
我正在努力尝试让 OpenCV 2.2 库与我的项目(运行 VSC++,2010)一起工作。我按照 http://opencv.willowgarage.com/wiki/VisualC%2B%2B
总而言之,我想要的是避免在多个 .dll 中出现重复的 .lib 文件,因为生成的 .dll 将在一个 .exe 文件中一起使用,这会使 .lib 文件中的全局状态重复。 具体问题: 我有一个包含 3
我正在尝试使用 Intel TBB 和 IPP 构建 OpenCV v2.3.1。我使用 CMake 生成 Visual Studio 2010 解决方案。构建成功,我在输出中有 opencv_cor
我不明白 use local::lib 经常做 use lib 没有。有人可以解释一下吗? 最佳答案 常规 use lib foo几乎就像这样简单: BEGIN { unshift(@INC, foo
我是一名优秀的程序员,十分优秀!