有一个为Linux环境开发的项目。 现在我正试图在使用CMake的Windows上构build它。
我一直试图build立该项目,总是得到这个错误:
CMake Error at C:/Program Files(x86)/CMake/share/cmake-3.3/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) Call Stack (most recent call first): C:/Program Files(x86)/CMake/share/cmake-3.3/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE) C:/Program Files(x86)/CMake/share/cmake-3.3/Modules/FindGTest.cmake:204 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) C:/Users/awy9/git/cmake_modules/modules/SigeoGTest.cmake:21 (find_package) C:/Users/awy9/git/cmake_modules/modules/SigeoInit.cmake:29 (include) CMakeLists.txt:12 (include)
我怎样才能设置这些variables现在在Windows上的这个项目上工作?
如何将C ++变体转换为JSON?
如何在linux内核空间获取当前小时(一天中的时间)
GUID的唯一性
如何使Qt Widget填充父窗口小部件?
在Mac OS X上安装第三方C库
从Windows服务获取用户根目录
如何locking并强制用户重新input自己的Windows密码?
错误:在我的Makefile中“混合隐式和静态模式规则”
如何使脚本在Linux使用我的interpteter和工作? (#!)
使用MinGW生成在64位系统上编译一个32位的exe文件 – 编译一个32位的exe文件,但链接到64位的dll
UPDATE
@Tsyvarev帮我解决了第一个问题,我引用他的话:
这是标准的CMake消息,当没有找到请求的包(GTest在你的情况下)。 您应该在配置您的项目之前安装GTest。 或者,如果您已经将其安装到非标准位置,请通过GTEST_ROOT变量传递此位置:cmake -DGTEST_ROOT = …
作为cmake传递变量的替代方法,可以设置环境变量:set GTEST_ROOT =
这解决了与GTEST_INCLUDE_DIR的值的问题 ,但我仍然有这些错误:
CMake错误在C:/ Program Files(x86)/CMake/share/cmake-3.3/modulees/FindPackageH andleStandardArgs.cmake:148(消息):无法找到GTest(缺少:GTEST_LIBRARY GTEST_MAIN_LIBRARY)
解
我认为,在Windows环境下,一些价值观与手册所说的不同。
编译Gtest后,我得到了两个库:gtest.lib和gtest_main.lib然后,我设置这些文件路径变量:
GTEST_LIBRARY = C: Users awy9 Softwares Gtest gtest-1.7.0 Debug gtest.lib GTEST_MAIN_LIBRARY = C: Users awy9 Softwares Gtest gtest-1.7.0 Debug gtest_main.lib
现在一切正常!
谢谢